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
我只想打印列中具有特定字符串的行 "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