Saya mencoba mengurutkan file seperti ini (yang merupakan daftar nama subrutin)
cfn=(1370) __lib_file_MOD_file_open
fn=(1368) __universe_MOD_general_boot
fn=(916) __universe_MOD_general_main
fn=(6142) __grid_var_MOD_get_overlap
...
sesuai dengan integer di dalam tanda kurung. Saya pertama kali mencoba perintah sortir sebagai
sort -t '=' -k 2 routine_list.txt
tapi kemudian fn = (916) muncul di akhir ouput.
fn=(1368) __universe_MOD_general_boot
cfn=(1370) __lib_file_MOD_file_open
fn=(6142) __grid_var_MOD_get_overlap
...
fn=(916) __universe_MOD_general_main
tetapi saya ingin angka-angka yang akan disortir dalam urutan meningkat (916 -> 1368 -> 1370 -> ...) Apakah mungkin untuk melakukan ini secara relatif hanya dengan menggunakan beberapa perintah atau opsi?
Jawaban:
Bagaimana tentang:
Uji :
-n
menandakan kita sedang mengurutkan angkat'('
menetapkan pembatas sebagai(
-k2
menetapkan kuncisort
sebagai bidang kedua yaitu mulai dari digit ke akhir baris.sumber
(
sebagai pembatas alih-alih=
seolah-olah Anda gunakan(
maka penyortiran dapat dimulai secara numerik dari titik paling awal dari bidang kedua ..Coba ini. Set pembatas ke =, dan kemudian menggunakan bidang 2 dari karakter 2 dan seterusnya (mengabaikan "(").
Atau bahkan
sumber