Bagaimana saya bisa mengurutkan file berdasarkan kolom kedua dari terminal. Isi filenya adalah:
Nome Note
------------
Mehdi 0
Sunday 20
Others 10
Shnou 5
Menggunakan sort -t' ' -nk2
tidak memberi saya hasil yang tepat. Juga bagaimana saya bisa memastikan bahwa konten file tetap diurutkan?
Jawaban yang Diterima:
Saya pikir apa yang Anda cari adalah sesuatu seperti ini:
Metode #1:menggunakan kepala &ekor
$ (head -n 2 sample.txt; tail -n +3 sample.txt | sort -t' ' -nk2) > a.tmp && mv a.tmp sample.txt
Nome Note
------------
Mehdi 0
Shnou 5
Others 10
Sunday 20
Ini mengambil baris pertama dari file teks, lalu membuntuti semuanya setelah 2 baris pertama yang kemudian diurutkan.
Metode #2:hanya menggunakan kepala
$ (head -n 2; sort -t' ' -nk2) < sample.txt > a.tmp && mv a.tmp sample.txt
Nome Note
------------
Mehdi 0
Shnou 5
Others 10
Sunday 20
Mengambil file teks sebagai input, hanya menampilkan baris pertama, mengurutkan sisanya.
Biasanya bukan ide yang baik untuk mengedit file di tempat. Itu mungkin, tetapi lebih baik menggunakan file perantara.
Metode #3:Melakukan #2 tanpa file perantara
Mencuri ide dari @StephaneChazelas Anda dapat melakukan hal berikut menggunakan notasi “1<>” untuk membuka file untuk membaca &menulis, dan peningkatan yang disarankannya dengan sort
perintah.
$ (head -n 2; sort -nk2) < sample.txt 1<> sample.txt
Nome Note
------------
Mehdi 0
Shnou 5
Others 10
Sunday 20