Bagaimana cara menghapus semua karakter dalam satu baris setelah "]" dengan sed?


13

Bagaimana cara menghapus semua karakter dalam satu baris setelah "]" dengan sed?

Saya mencoba untuk mengambil beberapa file menggunakan cat, awk. Sekarang oneliner saya mengembalikan sesuatu seperti

121.122.121.111] other characters in logs from sendmail.... :)

Sekarang saya ingin menghapus semua setelah "]" karakter (dengan "]"). Saya hanya ingin 121.122.121.111di output saya.

Saya mencari-cari contoh sed yang khusus di Google, tetapi tidak menemukan bantuan dalam contoh itu.

Jawaban:


20
 echo "121.122.121.111] other characters in logs from sendmail...." | sed 's/].*//' 

Jadi jika Anda memiliki file yang penuh dengan garis-garis seperti itu dapat Anda lakukan

 sed 's/].*//' filename

12

Bagaimana kalau cutsebaliknya:

cat logfile | cut -d "]" -f1

3

Sesuatu seperti

sed 's|\(.*\)\] .*$|\1|'

harus melakukan apa yang Anda inginkan. The \(.*\)]akan menangkap semua teks hingga ]ke dalam pola diingat dan kemudian \1pengganti untuk seluruh baris.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.