'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 SandiMd. 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.