วิธีลบตัวละครทั้งหมดในหนึ่งบรรทัดหลัง“]” ด้วย sed?


13

วิธีลบตัวละครทั้งหมดในหนึ่งบรรทัดหลังจาก "]" ด้วย sed?

ฉันกำลังพยายาม grep ไฟล์โดยใช้ cat, awk ตอนนี้ Oneliner ของฉันส่งคืนสิ่งที่ชอบ

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

ตอนนี้ฉันต้องการลบทั้งหมดหลังจากอักขระ "]" (พร้อม "]") ฉันต้องการเฉพาะ121.122.121.111ในผลลัพธ์ของฉัน

ฉันกำลังค้นหาตัวอย่างเฉพาะของความเฉยเมย แต่ไม่พบความช่วยเหลือในตัวอย่างเหล่านั้น

คำตอบ:


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

ดังนั้นหากคุณมีไฟล์ที่เต็มไปด้วยเส้นอย่างที่คุณสามารถทำได้

 sed 's/].*//' filename


3

สิ่งที่ต้องการ

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

ควรทำสิ่งที่คุณต้องการ \(.*\)]จะจับทุกข้อความขึ้นไป]เป็นรูปแบบที่จำได้แล้ว\1ทดแทนมันสำหรับสายทั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.