Awk
awk NR%2{}1 含義
我試圖理解這段程式碼:
awk 'NR%2{printf "%s ",$0;next;}1' yourFile
現在我嘗試自定義它。
鑑於此 error.txt 內容:
KEY 4048:1736 string 3 KEY 0:1772 string 1 KEY 4192:1349 string 1 KEY 7329:2407 string 2 KEY 0:1774 string 1
然後:
awk 'NR%2{printf NR "%s ", $0; next}1' error.txt
… 將返回:
1KEY 4048:1736 string 3 3KEY 0:1772 string 1 5KEY 4192:1349 string 1 7KEY 7329:2407 string 2 9KEY 0:1774 string 1
我想
NR%2
是指偶數行號,但我不確定1
指的是什麼。沒有
1
,awk 'NR%2{printf NR "%s ", $0; next}' error.txt
將返回一行。1KEY 4048:1736 string 3KEY 0:1772 string 5KEY 4192:1349 string 7KEY 7329:2407 string 9KEY 0:1774 string
總的來說,我仍然沒有得到它。
到目前為止,我已經查看了這些頁面:
即Modulus/Remainder 算術運算符
%
,它找到兩個或多個數字的模除法。in awk 表示目前記錄編號,除以 2 寫為條件語句,對於偶數記錄編號,結果為 0,因此 0 是錯誤結果,因此不執行後續操作,並且;NR
1
最後,將執行一個被稱為“始終為真”條件的習語,該條件將在前幾行的末尾列印偶數行號(只要結果為 0,它就會執行)NR%2
,這些行號在printf
不換行的情況下列印。請參閱awk 腳本末尾的“1”是什麼意思