GNU/Linux >> Belajar Linux >  >> Linux

Urutkan Bagian Dari File?

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

Linux
  1. Urutkan Perintah di Linux dengan Contoh

  2. Urutan Pengalihan?

  3. Menggunakan Uniq Pada Teks Unicode?

  1. Linux mengurutkan file shell menurut kolom kedua?

  2. Cara mengurutkan file di tempat

  3. Menyortir ukuran file yang dapat dibaca manusia

  1. urutkan Contoh Perintah di Linux

  2. urutkan:perintah tidak ditemukan

  3. Sortir dengan pemisah bidang