awk

Cara Parsing File Tab-Delimited Menggunakan 'awk'

Cara Parsing File Tab-Delimited Menggunakan 'awk'

'tab' digunakan sebagai pemisah Dalam file yang dibatasi tab. Jenis file teks ini dibuat untuk menyimpan berbagai jenis data teks dalam format terstruktur.  Berbagai jenis perintah ada di Linux untuk mengurai jenis file ini.  Perintah 'awk' adalah salah satu cara untuk mengurai file yang dibatasi tab dengan cara yang berbeda. Penggunaan perintah 'awk' untuk membaca file yang dibatasi tab telah ditunjukkan dalam tutorial ini.

Buat file tab-delimited:

Buat file teks bernama pengguna.txt dengan konten berikut untuk menguji perintah dari tutorial ini. File ini berisi nama pengguna, email, nama pengguna, dan kata sandi.

pengguna.txt

Nama               Email                    Nama pengguna         Sandi
Md. Robin         [email protected]             robin89              563425
Nila Hasan         [email protected]              nila78               245667
Mirza Abbas        [email protected]             mirza23              534788
Aornob Hasan       [email protected]        arnob45              778473
Nuhas Ahsan        [email protected]             nuhas34              563452

Contoh-1: Cetak kolom kedua dari file tab-delimited menggunakan opsi -F

Perintah 'sed' berikut akan mencetak kolom kedua dari file teks yang dibatasi tab. Di sini, '-F' opsi digunakan untuk menentukan pemisah bidang file.

$ pengguna kucing.txt
$ awk -F '\t' 'print $2' pengguna.txt

Output berikut akan muncul setelah menjalankan perintah:. Kolom kedua file berisi alamat email pengguna, yang ditampilkan sebagai output.

Contoh-2: Cetak kolom pertama dari file tab-delimited menggunakan variabel FS

Perintah 'sed' berikut akan mencetak kolom pertama dari file teks yang dibatasi tab. Sini, FS ( Pemisah Bidang) variabel digunakan untuk menentukan pemisah bidang file.

$ pengguna kucing.txt
$ awk ' print $1 ' pengguna FS='\t'.txt

Output berikut akan muncul setelah menjalankan perintah:. Kolom pertama file berisi nama pengguna, yang ditampilkan sebagai output.

Contoh-3: Cetak kolom ketiga dari file berbatas tab dengan pemformatan

Perintah 'sed' berikut akan mencetak kolom ketiga dari file teks berbatas tab dengan pemformatan menggunakan  FS variabel dan printf. Di sini, FS variabel digunakan untuk menentukan pemisah bidang file.

$ pengguna kucing.txt
$ awk pengguna 'BEGINFS="\t" printf "%10s\n", $3'.txt

Output berikut akan muncul setelah menjalankan perintah:. Kolom ketiga file berisi nama pengguna yang telah dicetak di sini.

Contoh-4: Cetak kolom ketiga dan keempat dari file tab-delimited dengan menggunakan OFS

OFS (Output Field Separator) digunakan untuk menambahkan pemisah field pada output. Perintah 'awk' berikut akan membagi konten file berdasarkan pemisah tab(\t) dan mencetak kolom ke-3 dan ke-4 menggunakan tab(\t) sebagai pemisah.

$ pengguna kucing.txt
$ awk -F "\t" 'OFS="\t" cetak $3, $4 > ("keluaran.txt")' pengguna.txt
$ keluaran kucing.txt

Output berikut akan muncul setelah menjalankan perintah di atas. Kolom ke-3 dan ke-4 berisi nama pengguna dan sandi, yang telah dicetak di sini.

Contoh-5: Ganti konten tertentu dari file berbatas tab

sub() fungsi digunakan dalam 'awk ke perintah untuk substitusi. Perintah 'awk' berikut akan mencari nomor 45 dan mengganti dengan nomor 90 jika nomor pencarian ada di file. Setelah substitusi, konten file akan disimpan di output.file txt.

$ pengguna kucing.txt
$ awk  -F "\t"'sub(/45/,90);print' pengguna.txt > keluaran.txt
$ keluaran kucing.txt

Output berikut akan muncul setelah menjalankan perintah di atas. Hasil.File txt menunjukkan konten yang dimodifikasi setelah menerapkan substitusi. Di sini, konten baris ke-5 telah diubah, dan 'arnob45' diubah menjadi 'arnob90'.

Contoh-6: Tambahkan string di awal setiap baris file yang dibatasi tab

Berikut perintah 'awk', opsi '-F' digunakan untuk membagi isi file berdasarkan tab(\t). OFS telah digunakan untuk menambahkan koma (,) sebagai pemisah bidang dalam output. fungsi sub() digunakan untuk menambahkan string '-→' di awal setiap baris output.

$ pengguna kucing.txt
$ awk -F "\t" 'OFS=",";sub(/^/, "---->");print $1,$2,$3' pengguna.txt

Output berikut akan muncul setelah menjalankan perintah di atas. Setiap nilai bidang dipisahkan dengan koma (,) dan string ditambahkan di awal setiap baris.

Contoh-7: Substitusikan nilai file tab-delimited dengan menggunakan fungsi gsub()

fungsi gsub() digunakan dalam perintah 'awk' untuk substitusi global. Semua nilai string file akan menggantikan tempat pola pencarian cocok. Perbedaan utama antara fungsi sub() dan gsub() adalah bahwa fungsi sub() menghentikan tugas substitusi setelah menemukan kecocokan pertama, dan fungsi gsub() mencari pola di akhir file untuk substitusi. Perintah 'awk' berikut akan mencari kata 'nila' dan 'Mira' secara global dalam file dan mengganti semua kemunculan dengan teks, 'Nama Tidak Valid', di mana kata pencarian cocok.

$ pengguna kucing.txt
$ awk  -F '\t' 'gsub(/nila|Mira/, "Nama Tidak Valid"); cetak' pengguna.txt

Output berikut akan muncul setelah menjalankan perintah di atas. Kata 'nila' ada dua kali di baris ke-3 file yang telah diganti dengan kata 'Nama Tidak Valid' di output.

Contoh-8: Cetak konten yang diformat dari file berbatas tab

Perintah 'awk' berikut akan mencetak kolom pertama dan kedua dari file dengan format dengan menggunakan printf. Output akan menampilkan nama pengguna dengan melampirkan alamat email dalam tanda kurung.

$ pengguna kucing.txt
$ awk -F '\t' 'printf "%s(%s)\n", $1,$2' pengguna.txt

Output berikut akan muncul setelah menjalankan perintah di atas.

Kesimpulan

File yang dibatasi tab dapat dengan mudah diuraikan dan dicetak dengan pembatas lain dengan menggunakan perintah 'awk'. Cara mem-parsing file tab-delimited dan mencetak dalam format berbeda telah ditunjukkan dalam tutorial ini dengan menggunakan beberapa contoh. Penggunaan fungsi sub() dan gsub() dalam perintah 'awk' untuk mengganti konten file tab-delimited juga dijelaskan dalam tutorial ini. Saya harap tutorial ini akan membantu pembaca untuk mengurai file tab-delimited dengan mudah setelah mempraktikkan contoh tutorial ini dengan benar.

Kursor melompat atau bergerak secara acak saat mengetik di Windows 10
Jika Anda menemukan bahwa kursor mouse Anda melompat atau bergerak sendiri, secara otomatis, acak saat mengetik di laptop atau komputer Windows, maka ...
Cara membalikkan arah gulir Mouse dan Touchpads di Windows 10
Mouse dan Panel sentuhs tidak hanya membuat komputasi menjadi mudah tetapi juga lebih efisien dan tidak memakan banyak waktu. Kami tidak dapat membaya...
Cara mengubah penunjuk Mouse dan ukuran kursor, warna & skema pada Windows 10
Penunjuk mouse dan kursor di Windows 10 adalah aspek yang sangat penting dari sistem operasi. Ini dapat dikatakan untuk sistem operasi lain juga, jadi...