我輸出的命令如此處所示。如何使用awk或sed將行對齊到右側來過濾字符
ID SPEED NCPU PMEM VMEM EP NPROC IO IOPS
p1 100 1 1024M 1024M 20 100 1024 1024
a2 100 1 1024M 1024M 20 100 1024 1024
b2 b3 100 1 1024M 1024M 20 100 1024 1024
c3 c4 c5 100 1 1024M 1024M 20 100 0 1024
我需要過濾掉落入下的列 'ID'
該命令僅awk '{print $1}
打印的值:
p1
a2
b2
c3
這是不期望的輸出
。
我正在尋找的輸出是。
p1
a2
b2 b3
c3 c4 c5
這是依靠不確定的行爲,因此因人而異。 POSIX定義瞭如果你增加'NF'(你得到一堆額外的空字段)會發生什麼,但是當你減少它時會發生什麼,這是留給實現的。儘管你可以通過'sub(/(+ [^] +){8} $ /,「」)'得到一個POSIX方法。 –
這似乎是一個公平的評論 - 至少每個POSIX ['awk'](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.html) 規範。您可以通過分配給超出當前值的字段來增加'NF':$(NF + 1)= 6; $(NF + 1)= 7;'實際上分配給兩個不同的領域,這並不明顯。目前還不清楚定義了「NF + = 2」還是定義了「NF - = 7」。它恰好工作;目前還不清楚它是否必須奏效。 –