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. 如何使用'\ t |'分隔awk字符串蜇作爲分隔符?
- 2. 如何使用空間作爲使用awk的字段分隔符?
- 3. 在awk字段分隔符的行爲
- 4. 如何分隔字段並用awk
- 5. awk - 如何指定字段分隔符爲二進制值0x1
- 6. AWK多個字段分隔符
- 7. AWK:字段分隔符包含'+'
- 8. 如何將awk分隔符設置爲字符串或字符?
- 9. awk中字段分隔
- 10. 使用管道字符作爲字段分隔符
- 11. awk保留字段分隔符時使用子
- 12. pandas read_csv使用unicode字符作爲分隔符/分隔符。
- 13. 爲什麼我不能在awk中使用字符串「?B?」作爲分隔符
- 14. 如何在awk中將分隔字符串拆分爲數組?
- 15. AWK字段分隔符不工作的第一線
- 16. awk中輸出字段分隔符在字段中替換
- 17. 如何使用點作爲分隔符?
- 18. 將awk的字段分隔符更改爲新行
- 19. 使用字符串作爲分隔符來拆分字符串
- 20. 在AWK中使用雙引號作爲記錄分隔符
- 21. 使用SED或AWK使用分隔符分隔.csv列數據
- 22. 如何使awk在逗號用作數字組分隔符時正確添加
- 23. Awk在同一字段中使用多個分隔符分割輸入製表符分隔的文件
- 24. 如何告訴awk使用=作爲分隔符(同時刪除空格)
- 25. 將字符串拆分爲awk中的反斜槓(「\」)分隔符?
- 26. Bell字符作爲Python中的字段分隔符print輸出
- 27. 在std :: getline()上使用任何字符作爲分隔符
- 28. 使用awk在頂部命令中的字段分隔
- 29. 使用整數作爲分隔符分割字符串
- 30. 如何使用分割字符串。 (期間與空間)作爲分隔符JSTL
Ignorant的問題在這裏:/ 1/part是告訴awk只處理包含數字1的行的行(或記錄更精確)嗎? – rantsh 2013-03-21 19:13:05
@rantsh正好 – rightfold 2014-12-17 13:16:43