Bagaimana saya bisa menggunakan awk atau sed untuk mencetak string hanya hingga karakter garis bawah pertama?
Sebelum:
host100_044 2
host101_045 2
host102_046 2
Setelah:
host100
host101
host102
unix
bash-scripting
unix-utils
Rubstr
sumber
sumber
Alternatif lain untuk sed:
Jika Anda memiliki ini dalam file, Anda bisa menyebutnya sebagai berikut;
sumber
Keluaran:
Dengan baris baru:
Keluaran:
sumber
Menggunakan
sed
:Menggunakan
sed
opsi edit di tempat,sumber
awk
solusi sudah diposting (dancut
mungkin yang terbaik dalam hal ini), karena dia bertanyased
, tetapi Anda mengalahkan saya dengan detik :-). Anda bahkan dapat menghapusnya$
, karena itu akan cocok.*
dengan akhir baris secara default.The
-F'_'
menginstruksikanawk
untuk menggunakan garis sebagai pembatas lapangan. Theawk
Script itu sendiri hanya mencetak field pertama.sumber
Ini akan mencetak output sebelum
_
:sed 's/_.*//' -filename
sumber