Aduh

Cara Mencetak Lajur Pertama atau Lajur Terakhir atau Kedua-duanya Menggunakan 'awk'

Cara Mencetak Lajur Pertama atau Lajur Terakhir atau Kedua-duanya Menggunakan 'awk'

Perintah 'awk' Linux adalah utiliti yang kuat untuk operasi yang berbeza pada fail teks seperti mencari, mengganti, dan mencetak. Mudah digunakan dengan data tabel kerana secara automatik membahagi setiap baris menjadi medan atau lajur berdasarkan pemisah medan. Apabila anda bekerja dengan fail teks yang berisi data tabel dan ingin mencetak data lajur tertentu, maka perintah 'awk' adalah pilihan terbaik. Dalam tutorial ini, kami akan menunjukkan kepada anda cara mencetak lajur pertama dan / atau lajur terakhir baris atau fail teks.

Cetak lajur pertama dan / atau lajur terakhir output perintah

Banyak arahan Linux seperti arahan 'ls' menghasilkan output tabular. Di sini, kami akan menunjukkan cara mencetak lajur pertama dan / atau lajur terakhir dari output arahan 'ls -l'.

Contoh 1: Cetak lajur pertama output perintah

Perintah 'awk' berikut akan mencetak lajur pertama dari output arahan 'ls -l'.

$ ls -l
$ ls -l | awk 'cetak $ 1'

Output berikut akan dihasilkan setelah menjalankan perintah di atas.

Contoh 2: Cetak lajur terakhir output perintah

Perintah 'awk' berikut akan mencetak lajur terakhir dari output arahan 'ls -l'.

$ ls -l
$ ls -l | awk 'cetak $ NF'

Output berikut akan dihasilkan setelah menjalankan perintah di atas.

Contoh 3: Cetak lajur pertama dan terakhir dari output arahan

Perintah 'awk' berikut akan mencetak lajur pertama dan terakhir dari output arahan 'ls -l'.

$ ls -l
$ ls -l | awk 'cetak $ 1, $ NF'

Output berikut akan dihasilkan setelah menjalankan perintah di atas.

Cetak lajur pertama dan / atau lajur terakhir fail teks

Di sini, kami akan menunjukkan kepada anda cara menggunakan perintah 'awk' untuk mencetak lajur pertama dan / atau lajur terakhir fail teks.

Buat fail teks

Untuk mengikuti tutorial ini, buat fail teks bernama pelanggan.txt dengan kandungan berikut. Fail mengandungi tiga jenis data pelanggan: nama dengan id, e-mel, dan nombor telefon. Karakter tab (\ t) digunakan untuk memisahkan nilai-nilai ini.

Namakan Telefon E-mel
Jonathon Bing - 1001 [dilindungi e-mel] 01967456323
Micheal Jackson - 2006 [dilindungi e-mel] 01756235643
Janifer Lopez - 3029 [dilindungi e-mel] 01822347865
John Abraham - 4235 j [dilindungi e-mel] 01590078452
Mir Sabbir - 2756 [dilindungi e-mel] 01189523978

Contoh 4: Cetak lajur pertama fail tanpa menggunakan pemisah medan

Sekiranya tiada pemisah medan digunakan dalam perintah 'awk', maka spasi digunakan sebagai pemisah medan lalai. Perintah 'awk' berikut akan mencetak lajur pertama dengan menggunakan pemisah lalai.

pelanggan $ kucing.txt
$ awk 'print $ 1' pelanggan.txt

Output berikut akan dihasilkan setelah menjalankan perintah di atas. Perhatikan bahawa output hanya menunjukkan nama depan pelanggan kerana ruang tersebut digunakan sebagai pemisah medan. Penyelesaian untuk masalah ini ditunjukkan dalam contoh seterusnya.

Contoh 5: Cetak lajur pertama fail dengan pembatas

Di sini, \ t digunakan sebagai pemisah medan untuk mencetak lajur pertama fail. Pilihan '-F' digunakan untuk menetapkan pemisah medan.

pelanggan $ kucing.txt
pelanggan $ awk -F '\ t' 'print $ 1'.txt

Output berikut akan dihasilkan setelah menjalankan perintah di atas. Kandungan fail dibahagikan kepada tiga lajur berdasarkan \ t. Oleh itu, nama dan id pelanggan dicetak sebagai lajur pertama. Sekiranya anda ingin mencetak nama pelanggan tanpa id, teruskan ke contoh seterusnya.


Sekiranya anda ingin mencetak nama pelanggan tanpa id, anda harus menggunakan '-' sebagai pemisah medan. Perintah 'awk' berikut akan mencetak nama pelanggan hanya sebagai lajur pertama.

pelanggan $ kucing.txt
$ awk -F '-' 'print $ 1' pelanggan.txt

Output berikut akan dihasilkan setelah menjalankan perintah di atas. Hasilnya merangkumi nama penuh pelanggan tanpa kad pengenalan mereka.

Contoh 6: Cetak lajur terakhir fail

Perintah 'awk' berikut akan mencetak ruangan terakhir pelanggan.txt. Kerana tidak ada pemisah medan yang digunakan dalam perintah, ruang akan digunakan sebagai pemisah medan.

pelanggan $ kucing.txt
$ awk 'print $ NF' pelanggan.txt

Output berikut akan dihasilkan setelah menjalankan perintah di atas. Lajur terakhir mengandungi nombor telefon, seperti yang ditunjukkan dalam output.

Contoh 7: Cetak lajur pertama dan terakhir fail

Perintah 'awk' berikut akan mencetak lajur pertama dan terakhir pelanggan.txt. Di sini, tab (\ t) digunakan sebagai pemisah medan untuk membahagikan kandungan menjadi lajur. Di sini, tab (\ t) digunakan sebagai pemisah untuk output.

pelanggan $ kucing.txt
$ awk -F "\ t" 'cetak $ 1 "\ t" $ NF' pelanggan.txt

Output berikut akan muncul setelah menjalankan perintah di atas. Kandungannya dibahagikan kepada tiga lajur dengan \ t; lajur pertama mengandungi nama dan id pelanggan dan lajur kedua mengandungi nombor telefon. Lajur pertama dan terakhir dicetak dengan menggunakan \ t sebagai pemisah.

Kesimpulannya

Perintah 'awk' dapat diterapkan dengan cara yang berbeda untuk mendapatkan lajur pertama dan / atau lajur terakhir dari sebarang output perintah atau dari data tabular. Penting untuk diperhatikan bahawa pemisah medan diperlukan dalam perintah, dan jika tidak disediakan, maka ruang digunakan.

5 Produk Tetikus Komputer Ergonomik Teratas untuk Linux
Adakah penggunaan komputer yang berpanjangan menyebabkan rasa sakit di pergelangan tangan atau jari anda? Adakah anda mengalami sendi kaku dan selalu ...
Cara Mengubah Tetapan Tetikus dan Pad Sentuh Menggunakan Xinput di Linux
Sebilangan besar pengedaran Linux dihantar dengan perpustakaan "libinput" secara lalai untuk menangani peristiwa input pada sistem. Ia dapat memproses...
Buat semula butang tetikus anda secara berbeza untuk perisian yang berbeza dengan X-Mouse Button Control
Mungkin anda memerlukan alat yang dapat mengubah kawalan tetikus anda dengan setiap aplikasi yang anda gunakan. Sekiranya ini berlaku, anda boleh menc...