awk 格式以打印具有特定列的行

awk format to print lines with specific columns

我只想打印列中具有特定字符串的行 "fgfgfg" 3 第4列第2列以fg开头 我正在使用以下命令,但它还会打印第 2 列中没有 fg 作为起始字符的行?

 awk '{if (( == "fgfgfg" ||  == "fgfgfg") &&  ~ /fg/) print [=10=]}' file_name

必须的条件是第2列必须以'fg'开头,我还想添加一个条件,即第2列以fg开头,后跟5位数字? 请帮忙!!

要确保第 2 列以 fg 开头,您需要使用:

 ~ /^fg/

注意 ^。它是行 锚点的起点。如果省略它,正则表达式将匹配字符串中任何位置的 fg

顺便说一句,你可以简化命令:

awk '(( == "fgfgfg") || ( == "fgfgfg")) &&  ~ /^fg/' file
 awk '(( == "fgfgfg") || ( == "fgfgfg")) && ( ~ /^fg[0-9]{5}/)' file_name