คำสั่งเหล่านี้จะพิมพ์คอลัมน์สุดท้ายของไฟล์ที่คั่นด้วยช่องว่าง:
awk '{print $NF}' file
ในawk
, NF
คือจำนวนของเขตข้อมูลและ$NF
เป็นเขตที่ผ่านมา
perl -lane 'print $F[$#F]' file
-a
แยกไฟล์บนช่องว่างออกเป็นอาเร@F
ย์$#F
คือจำนวนองค์ประกอบในอาเรย์$F[$#F]
เป็นองค์ประกอบสุดท้าย -n
วิธีการอ่านไฟล์ที่ได้รับในบรรทัดคำสั่งและใช้สคริปต์ที่ผ่านไป-e
แต่ละบรรทัด -l
เพียงเพิ่มอักขระขึ้นบรรทัดใหม่ ( \n
) ในแต่ละprint
ข้อความสั่ง
sed 's/.* //g'
นิพจน์ทั่วไปอย่างง่ายที่จับคู่ทุกอย่างกับช่องว่างสุดท้ายและลบออกโดยเหลือเพียงคอลัมน์สุดท้าย
rev file | cut -d' ' -f 1 | rev
rev
ย้อนกลับเอาต์พุตดังนั้นฟิลด์สุดท้ายคือฟิลด์แรกcut
ด้วยพื้นที่ตัวคั่นเพื่อพิมพ์และrev
กลับข้อความเป็นปกติ นี้ได้รับรางวัล' T ทำงานถ้าคุณมีช่องว่างต่อเนื่อง
จากข้อมูลที่คุณป้อนฉันคาดเดาว่าคุณไม่ต้องการคอลัมน์สุดท้าย แต่เป็นคอลัมน์สุดท้ายหรือหนึ่งคอลัมน์สุดท้าย ในกรณีนี้ใช้สิ่งเหล่านี้เพื่อพิมพ์ 2 ( 8.39 Mbits/sec
) ล่าสุด
awk '{print $(NF-1),$NF}' file
perl -lane 'print "$F[$#F-1] $F[$#F]"' file
sed 's/.* \(.* .*\)/\1/' file
rev file | cut -d' ' -f 1,2 | rev
และสิ่งเหล่านี้เพื่อพิมพ์ penultimate ( 8.39
):
awk '{print $(NF-1)}' file
perl -lane 'print $F[$#F-1]' file
sed 's/.* \(.*\) .*/\1/' file
rev file | cut -d' ' -f 2 | rev
Mbits/sec
สิ่งที่คุณต้องการหรือ 2 คอลัมน์สุดท้าย?