แม้ว่าการตัดด้วย-c
ตัวเลือกจะใช้งานได้จริง แต่ฉันคิดว่าการส่งประวัติไปยัง awk จะเป็นทางออกที่ดีกว่า ตัวอย่างเช่น:
history | awk '{ $1=""; print }'
หรือ
history | awk '{ $1=""; print $0 }'
ทั้งสองวิธีนี้ทำในสิ่งเดียวกัน เอาต์พุตของประวัติถูกป้อนไปยัง awk จากนั้น Awk จะเว้นว่างคอลัมน์แรกซึ่งสอดคล้องกับตัวเลขในเอาต์พุตของคำสั่ง history ที่นี่ awk สะดวกกว่าเพราะคุณไม่ต้องกังวลกับจำนวนอักขระในส่วนตัวเลขของผลลัพธ์
print $0
เทียบเท่ากับprint
เนื่องจากค่าเริ่มต้นคือการพิมพ์ทุกอย่างที่ปรากฏบนบรรทัด การพิมพ์print $0
มีความชัดเจนมากกว่า แต่จะเลือกแบบไหนก็ขึ้นอยู่กับคุณ ลักษณะการทำงานของprint $0
และอย่างง่ายprint
เมื่อใช้กับ awk จะชัดเจนมากขึ้นหากคุณใช้ awk เพื่อพิมพ์ไฟล์ ( cat
จะพิมพ์ได้เร็วกว่าแทน awk แต่นี่เป็นการแสดงจุด)
[เช่น] การใช้ awk เพื่อแสดงเนื้อหาของไฟล์ด้วย $ 0
$ awk '{print $0}' /tmp/hello-world.txt
Hello World!
[เช่น] การใช้ awk เพื่อแสดงเนื้อหาของไฟล์โดยไม่มี $ 0 อย่างชัดเจน
$ awk '{print}' /tmp/hello-world.txt
Hello World!
[เช่น] การใช้ awk เมื่อบรรทัดประวัติครอบคลุมหลายบรรทัด
$ history
11 clear
12 echo "In word processing and desktop publishing, a hard return or paragraph break indicates a new paragraph, to be distinguished from the soft return at the end of a line internal to a paragraph. This distinction allows word wrap to automatically re-flow text as it is edited, without losing paragraph breaks. The software may apply vertical whitespace or indenting at paragraph breaks, depending on the selected style."
$ history | awk ' $1=""; {print}'
clear
echo "In word processing and desktop publishing, a hard return or paragraph break indicates a new paragraph, to be distinguished from the soft return at the end of a line internal to a paragraph. This distinction allows word wrap to automatically re-flow text as it is edited, without losing paragraph breaks. The software may apply vertical whitespace or indenting at paragraph breaks, depending on the selected style."
cat ~/.bash_history
ถูกตัดออก?