บันทึกเมลอ่านยากอย่างไม่น่าเชื่อ ฉันจะส่งออกบรรทัดว่างระหว่างแต่ละบรรทัดที่พิมพ์บนบรรทัดคำสั่งได้อย่างไร ตัวอย่างเช่นฉันกำลังพิมพ์บันทึก ด้วยวิธีนี้หลายบรรทัดที่พันกันจะไม่สับสน
บันทึกเมลอ่านยากอย่างไม่น่าเชื่อ ฉันจะส่งออกบรรทัดว่างระหว่างแต่ละบรรทัดที่พิมพ์บนบรรทัดคำสั่งได้อย่างไร ตัวอย่างเช่นฉันกำลังพิมพ์บันทึก ด้วยวิธีนี้หลายบรรทัดที่พันกันจะไม่สับสน
คำตอบ:
sed G
# option: g G Copy/append hold space to pattern space.
G
ไม่ได้ใช้บ่อย แต่เหมาะสำหรับวัตถุประสงค์นี้ sedรักษาบัฟเฟอร์พื้นที่สอง: "pattern space" และ "hold space" สายประมวลผลโดยsedมักจะไหลผ่านพื้นที่รูปแบบเป็นคำสั่งต่างๆที่ดำเนินการเกี่ยวกับเนื้อหา ( s///
, p
ฯลฯ ); พื้นที่พักเริ่มว่างเปล่าและถูกใช้โดยบางคำสั่งเท่านั้น
G
คำสั่งผนวก newline และเนื้อหาของพื้นที่ถือไปยังพื้นที่รูปแบบที่ โปรแกรมsedด้านบนไม่ได้วางอะไรไว้ในพื้นที่พักดังนั้นG
จะเพิ่มบรรทัดใหม่ให้กับทุกบรรทัดที่ถูกประมวลผลอย่างมีประสิทธิภาพ
-e
เพราะเราต้องการอาร์กิวเมนต์คำสั่งเดียว
ใช้ awk เพื่อเพิ่มบรรทัดใหม่พิเศษ นอกจากนี้ยังช่วยให้คุณกรองสิ่งที่คุณไม่ต้องการ
awk '{print $0,"\n"}' | less
ใช้ sed และแทนที่ทั้งบรรทัดด้วยตัวเองบวกอักขระขึ้นบรรทัดใหม่หนึ่งตัว:
grep foo /var/log/maillog | sed -e "s/^.*$/&1\n/"
นี่คือสิ่งที่คุณเป็นหรือไม่
grep SPAM mail.log | while read -r line; do echo; echo $line; done
read -r
เพื่อหลีกเลี่ยงการใช้อักขระเครื่องหมายทับขวาเป็นพิเศษ
หากเป็นมากกว่าเพียงแค่ดูฉันชอบที่จะส่งพวกเขาไปยังไฟล์ข้อความและเปิดด้วยโปรแกรมแก้ไขข้อความเพื่อให้คุณสามารถตั้งค่าบรรทัดที่จะตัดหรือไม่และทำการค้นหาได้อย่างง่ายดาย ... และลบบรรทัดที่ไม่ต้องการและอื่น ๆ โดยไม่ต้อง ต้องพิมพ์คำสั่งจำนวนมาก
cat file.log > log.txt
และgedit log.txt
หรือเทอร์มินัลเอดิเตอร์เช่นนาโน
แก้ไข: หรือcp file.log log.txt
แน่นอนว่าง่ายขึ้นและเร็วขึ้น ... ขอบคุณที่แสดงความคิดเห็น KeithB
cat
ไม่cp
?
cp
จะง่ายขึ้นและเร็วขึ้น! ... lol - ฉันอ่านคำตอบอื่น ๆ ที่เกี่ยวข้องgrep
และawk
ดังนั้นฉันจึงเขียนcat
วิธี แต่ฉันแก้ไขนั้นขอบคุณ
whatever | sed G
ควรทำเคล็ดลับ