149
A
回答
239
「F」 是一個命令行參數不awk的語法,請嘗試:
echo "1: " | awk -F ":" '/1/ {print $1}'
12
46
如果你想以編程方式做到這一點,你可以使用FS
變量:
echo "1: " | awk 'BEGIN { FS=":" } /1/ { print $1 }'
請注意,如果您在主迴路,而不是BEGIN
循環改變它,它需要爲下一個影響行讀入,因爲當前行已被拆分。
1
沒有必要寫這麼多。只需在awk命令中使用-F選項將所需的字段分隔符與想要打印的列號按照您提到的字段分隔符分隔。
echo "1: " | awk -F: '{print $1}'
1
echo "1#2" | awk -F# '{print $1}'
1
3
AWK作品文本翻譯是去面向行整個文檔和是去fieldwise每行因此$ 1,$ 2 .. $ n爲每條線($ 1場的參考是第一場,2美元是第二場,等等......)。 您可以通過在命令行下使用「-F」開關或使用「FS = ...」在兩個括號內定義字段分隔符。 現在考慮「JUERGEN」的答案:
echo "1: " | awk -F ":" '/1/ {print $1}'
上方的字段boundries通過設置「:」所以我們有個域中$ 1爲「1」和$ 2這是空space.After,來了正則表達式「/ 1 /」指示過濾器僅當解釋器偶然發現包含這種表達式的行(我的意思是1)時才輸出第一個字段; 的「回聲」命令的輸出是一個行containes「1」,因此該過濾器將工作...
當與下面的例子中進行處理:
echo "1: " | awk '/1/ -F ":" {print $1}'
的語法是凌亂和解釋器選擇忽略部分F「:」 並切換到默認字段分離器,這是空的sapce,因此輸出「1:」作爲第一個字段,並且不會有第二個字段!
JUERGEN的答案包含良好的語法...
7
您有多種方法來設置:
作爲分隔符:
awk -F: '{print $1}'
awk -v FS=: '{print $1}'
awk '{print $1}' FS=:
awk 'BEGIN{FS=":"} {print $1}'
他們全部是等價的,對於將返回1
一個樣本輸入 「1:2:3」:
$ awk -F: '{print $1}' <<< "1:2:3"
1
$ awk -v FS=: '{print $1}' <<< "1:2:3"
1
$ awk '{print $1}' FS=: <<< "1:2:3"
1
$ awk 'BEGIN{FS=":"} {print $1}' <<< "1:2:3"
1
4
您也可以使用正則表達式作爲字段分隔符,以下內容將通過使用正則表達式將「10」號設置爲分隔符來打印「條」。
echo "foo 10 bar" | awk -F'[0-9][0-9]' '{print $2}'
1
或者你可以使用:
echo "1: " | awk '/1/{print $1-":"}'
這是非常有趣的公式。
相關問題
- 1. 在AWK中使用雙引號作爲字段分隔符
- 2. 如何使用'\ t |'分隔awk字符串蜇作爲分隔符?
- 3. 如何使用空間作爲使用awk的字段分隔符?
- 4. awk中 - 字段分隔符的行爲
- 5. 在awk字段分隔符的行爲
- 6. 如何分隔字段並用awk
- 7. awk - 如何指定字段分隔符爲二進制值0x1
- 8. awk雙引號字段分隔符
- 9. AWK多個字段分隔符
- 10. 關於awk字段分隔符
- 11. AWK多字段分隔符|算上場
- 12. AWK字段分隔符正在消失
- 13. AWK:字段分隔符包含'+'
- 14. 字段包含字段分隔符作爲字符串:如何在這種情況下正確應用awk?
- 15. 如何將awk分隔符設置爲字符串或字符?
- 16. awk中字段分隔
- 17. 如何在AWK中爲字段分隔符使用正則表達式?
- 18. 使用管道字符作爲字段分隔符
- 19. 如何在bash中使用AWK添加NUL字符分隔符?
- 20. 如何用管道字符分隔符分隔字段
- 21. 使用兩種字段分隔符awk打印列
- 22. awk保留字段分隔符時使用子
- 23. pandas read_csv使用unicode字符作爲分隔符/分隔符。
- 24. 爲什麼我不能在awk中使用字符串「?B?」作爲分隔符
- 25. 如何讓awk尊重字段分隔符?
- 26. 我如何讓Awk也顯示字段分隔符?
- 27. 如何在awk中將分隔字符串拆分爲數組?
- 28. AWK字段分隔符不工作的第一線
- 29. awk中輸出字段分隔符在字段中替換
- 30. 如何使用點作爲分隔符?
Ignorant的問題在這裏:/ 1/part是告訴awk只處理包含數字1的行的行(或記錄更精確)嗎? – rantsh 2013-03-21 19:13:05
@rantsh正好 – rightfold 2014-12-17 13:16:43