Awk
... |啊啊啊1=1=1=1'
刪除多餘的空格?
據我了解,
$1
是第一個領域。但奇怪的是,awk '$1=$1'
省略了額外的空格。$ echo "$string" foo foo bar bar $ echo "$string" | awk '$1=$1' foo foo bar bar
為什麼會這樣?
當我們為欄位變數賦值時,即。的價值 $ 1 is assigned to field $ 1,awk 實際上通過將它們與預設欄位分隔符(或 OFS)空間連接來重建其 $0。
我們也可以在以下場景中得到相同的情況……
echo -e "foo foo\tbar\t\tbar" | awk '$1=$1' foo foo bar bar echo -e "foo foo\tbar\t\tbar" | awk -v OFS=',' '$1=$1' foo,foo,bar,bar echo -e "foo foo\tbar\t\tbar" | awk '$3=1' foo foo 1 bar
對於 GNU AWK,此行為記錄在此處:
https ://www.gnu.org/software/gawk/manual/html_node/Changing-Fields.html
$ 1 = $ 1 # 強制記錄被重構