Saya memiliki file di mana saya harus menghilangkan semuanya setelah yang pertama ;
pada setiap baris.
Jadi file seperti ini:
sdfsdsdf;
fsdfsddf;sdfsd;
Akan menghasilkan ini:
sdfsdsdf
fsdfsddf
Saya telah melihat ke dalam grep
dan sed
. Saya akan menghargai jawaban yang menggabungkan salah satu dari perintah ini.
command-line
scripting
grep
sed
pemulung
sumber
sumber
sed 's/;.*//'
Pilihan lain adalah menggunakan
cut
perintahsumber
Saya biasanya menggunakan
awk
untuk hal-hal seperti ini:cat a.file | awk -F=";" '{ print $1 }'
Itu akan mengambil setiap baris file dan mencetak grup pertama sebelum pembatas
-F
sumber
cat
.Berikut cara untuk melakukannya menggunakan GNU
grep
:sumber
grep -Eo '^[^;]+;' filename
hampir mendapatkannya, ia hanya mencetak satu karakter terlalu banyak.grep -Eo '^[^;]+' filename
hampir mendapatkannya juga, tetapi itu juga akan mencetak garis lengkap (tidak kosong) yang tidak memilikinya;
.