ฉันมีโปรแกรมที่แสดงผลเช่นนี้
# Status VAL1 VAL2 Description
1 some text 2.5 4.4 Some long other text
5 some text 2 14.5 2.0 Some long other text 2
12 some text 3 222.6 24.4 Some long other text 3
19 some text 4 3.4 1.5 Some long other text 4
21 some text 5 55.4 10.6 Some long other text 5
32 some text 6 2.9 9.4 Some long other text 6
ฉันต้องการเรียงลำดับตามคอลัมน์ VAL2 ฉันลองด้วยsort -k 4
แต่เมื่อมีช่องว่างในคอลัมน์สถานะsort
สับสน
มีวิธีแก้ไขไหม อาจจะส่งผ่านหมายเลขอักขระแทนหมายเลขฟิลด์หรือไม่
@ vonbrand มันจะไม่ทำงานอย่างนั้นเพราะการจัดเรียงจะใช้ลำดับของช่องว่างใด ๆ เนื่องจากตัวคั่นฟิลด์และคุณไม่สามารถคาดเดาได้ว่าคอลัมน์ใดจะอยู่ในคอลัมน์ด้านบน ยิ่งไปกว่านั้นมันจะไม่เป็น VAL2
—
เร่ง
@rush เพียงบอกการเรียงลำดับว่าตัวคั่นเขตข้อมูลเป็นสิ่งที่เป็นไปไม่ได้และนับจำนวนอักขระใน "เขตข้อมูล" บรรทัดแรก (เต็มบรรทัด)
—
vonbrand
-k
sort(1)
ตรวจสอบให้แน่ใจว่าไฟล์อินพุตไม่มีแท็บเนื่องจากจะทำให้การนับของคุณ (expand(1)
)