[英]awk format to print lines with specific columns
我只想打印第3列或第 4列和第 2列中具有特定字符串的行,例如“ fgfgfg”,以fg開頭我正在使用以下命令,但它還會打印沒有以fg作為開頭字符的行第2列?
awk '{if (($3 == "fgfgfg" || $4 == "fgfgfg") && $2 ~ /fg/) print $0}' file_name
必須條件是$ 2列必須以'fg'開頭,我還想添加一個條件,即第2列以fg開頭,后跟5位數字? 任何幫助,請!
要確保第2列以fg
開頭,您需要使用:
$2 ~ /^fg/
注意^
。 這是行錨的開始 。 如果省略它,則正則表達式將在字符串中的任何位置匹配fg
。
順便說一句,您可以簡化命令:
awk '(($3 == "fgfgfg") || ($4 == "fgfgfg")) && $2 ~ /^fg/' file
awk '(($3 == "fgfgfg") || ($4 == "fgfgfg")) && ($2 ~ /^fg[0-9]{5}/)' file_name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.