GNU/Linux >> Belajar Linux >  >> Linux

Ambil kolom ke-n dalam file teks

iirc :

cat filename.txt | awk '{ print $2 $4 }'

atau, seperti yang disebutkan di komentar :

awk '{ print $2 $4 }' filename.txt

Anda dapat menggunakan cut perintah:

cut -d' ' -f3,5 < datafile.txt

cetakan

1657 19.6117
1410 18.8302
3078 18.6695
2434 14.0508
3129 13.5495

itu

  • -d' ' - maksudnya, gunakan space sebagai pembatas
  • -f3,5 - ambil dan cetak kolom ke-3 dan ke-5

cut jauh lebih cepat untuk file besar sebagai solusi shell murni. Jika file Anda dibatasi dengan beberapa spasi putih, Anda dapat menghapusnya terlebih dahulu, seperti:

sed 's/[\t ][\t ]*/ /g' < datafile.txt | cut -d' ' -f3,5

di mana (gnu) sed akan menggantikan tab atau space karakter dengan satu space .

Untuk varian - ini juga solusi perl:

perl -lanE 'say "$F[2] $F[4]"' < datafile.txt

Demi kelengkapan:

while read -r _ _ one _ two _; do
    echo "$one $two"
done < file.txt

Alih-alih _ variabel arbitrer (seperti junk ) juga dapat digunakan. Intinya hanya untuk mengekstrak kolom.

Demo:

$ while read -r _ _ one _ two _; do echo "$one $two"; done < /tmp/file.txt
1657 19.6117
1410 18.8302
3078 18.6695
2434 14.0508
3129 13.5495

Linux
  1. Ganti nama file di terminal Linux

  2. Ambil Kolom Pertama Dari 2 File Dan Tulis Ke File Ketiga?

  3. Bagaimana cara menghapus baris baru dari file teks?

  1. bagaimana cara menggunakan perintah Urutkan Linux untuk mengurutkan file teks menurut kolom ke-4, urutan numerik?

  2. Tulis ke file .txt?

  3. Bagaimana cara menyimpan output dari perintah awk ini ke file?

  1. Bagaimana cara menambahkan teks ke file?

  2. Bagaimana cara membagi satu file teks menjadi beberapa file *.txt?

  3. ganti kemunculan string ke-n di setiap baris file teks