GNU/Linux >> Belajar Linux >  >> Linux

Menggunakan AWK untuk memilih baris dengan nilai tertentu di kolom tertentu

File tempat Anda menjalankan skrip memiliki akhiran baris DOS. Mungkin itu dibuat di mesin Windows.

Gunakan dos2unix untuk mengubahnya menjadi file teks Unix.

Atau, jalankan melalui tr :

tr -d '\r' <input.txt >input-unix.txt

Kemudian gunakan input-unix.txt dengan awk Anda yang sebenarnya benar kode.

Untuk memodifikasi awk kode alih-alih file input:

awk -F, '$7 == "-99\r"' input.txt >output.txt

Ini memperhitungkan carriage-return di akhir baris.

Atau,

awk -F, '$7 + 0 == -99' input.txt >output.txt

Ini memaksa kolom ke-7 untuk ditafsirkan sebagai angka, yang "menghapus" carriage-return.

Demikian pula,

awk -F, 'int($7) == -99' input.txt >output.txt

juga akan menghapus \r .


awk -F, '{if($7==-99)print $0}'

akan melakukan itu...


Linux
  1. File Cat Dengan Direktori?

  2. Penggantian String Menggunakan Kamus?

  3. Menggunakan Bungkus Kata Dengan Mc?

  1. Nilai persentase dengan GNU Diff

  2. Menggunakan warna dengan printf

  3. Hapus karakter tertentu menggunakan awk atau sed

  1. Tambahkan Kolom ke akhir file CSV menggunakan 'awk' dalam skrip BASH

  2. Cara mengurangi baris (baris) dengan AWK

  3. Menggunakan awk untuk menjumlahkan nilai kolom, berdasarkan nilai kolom lain