Bagaimana saya bisa menggunakan awk untuk menghapus semua teks setelah karakter tertentu ";" yang muncul di setiap baris file teks saya? (Saya kemudian perlu menjalankan untuk loop pada teks)
Jenny,Sarah,John;North Dakota
Henry,Frank;Illinois
Aaron,Kathryn,Caitlin,Harris;New York
text-processing
awk
Jenny
sumber
sumber
Jawaban:
Ada dua pendekatan umum.
Set
awk
pemisah bidang ke karakter itu. Anda kemudian bisa mendapatkan bagian yang Anda inginkan sebagai$1
:Gunakan
gsub()
untuk menggantinya dengan string kosong:Jadi, untuk contoh Anda:
sumber
Inilah jawaban dengan
sed
- karena Anda tidak benar-benar melakukan pemrosesan lapangan, awk mungkin berlebihan.sumber
Dan juga hanya
cut
..sumber
Terkadang Anda mungkin ingin mengganti semua karakter setelah kata tertentu dengan string lain. Sebagai contoh:
original_string="abc blabla foo bar"
dan Anda ingin mengganti kata setelah blabla dengan 'hello world'sumber