Shell-Script
如何從某些輸出的每一行修剪前導和尾隨空格?
我想從輸出的每一行中刪除所有前導和尾隨空格和製表符。
有沒有像
trim
我可以將輸出輸入管道的簡單工具?範例文件:
test space at back test space at front TAB at end TAB at front sequence of some space in the middle some empty lines with differing TABS and spaces: test space at both ends
awk '{$1=$1;print}'
或更短:
awk '{$1=$1};1'
將修剪前導和尾隨空格或製表符1 並將製表符和空格序列壓縮到一個空格中。
之所以有效,是因為當您將某些內容分配給其中一個欄位時,會通過將所有欄位 ( , …, ) 與(預設情況下為空格) 連接
awk
來重建整個記錄 (由 列印)。print``$1``$NF``OFS
要同時刪除空白行,請將其更改為
awk '{$1=$1};NF'
(其中NF
告訴awk
僅列印欄位數非零的記錄N
)F
。不要像有時建議的那樣做awk '$1=$1'
,因為這也會刪除第一個欄位是0
由awk
(0
,00
,-0e+12
…)支持的任何表示的行1(可能還有其他空白字元,具體取決於語言環境和
awk
實現)