Làm cách nào để xóa tất cả các ký tự trong một dòng sau khi]] với sed?


13

Làm cách nào để xóa tất cả các ký tự trong một dòng sau "]" bằng sed?

Tôi đang cố grep một số tập tin bằng cách sử dụng cat, awk. Bây giờ oneliner của tôi trả lại cho tôi một cái gì đó như

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

Bây giờ tôi muốn xóa tất cả sau ký tự "]" (với "]"). Tôi chỉ muốn 121.122.121.111trong đầu ra của tôi.

Tôi đã googling cho ví dụ cụ thể về sed nhưng không tìm thấy sự giúp đỡ nào trong những ví dụ đó.

Câu trả lời:


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

Vì vậy, nếu bạn có một tập tin đầy đủ các dòng như thế bạn có thể làm

 sed 's/].*//' filename

12

Làm thế nào về cutthay thế:

cat logfile | cut -d "]" -f1

3

Cái gì đó như

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

nên làm những gì bạn muốn Ý \(.*\)]chí sẽ nắm bắt tất cả các văn bản cho đến ]một mô hình được nhớ và sau đó \1thay thế nó cho toàn bộ dòng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.