以下AWK格式:
/REGEX/ {Action}
如果当前行与REGEX
匹配,将执行Action
。
有没有办法添加一个else
子句,如果当前行与正则表达式不匹配,就会执行该子句,而不显式地使用if-then-else,如下所示:
/REGEX/ {Action-if-matches} {Action-if-does-not-match}
发布于 2013-01-23 22:30:47
还有next
/REGEX/ {
Action
next # skip to the next line
}
{ will only get here if the current line does *not* match /REGEX/ }
发布于 2013-01-23 20:45:16
你可以做一个“小把戏”。正如您所知道的,AWK尝试将输入按顺序匹配到每个正则表达式,以执行其代码块。
如果$1为"1",则此代码执行第二个块,否则执行第三个块:
awk '{used = 0} $1 == 1 {print $1" is 1 !!"; used = 1;} used == 0 {print $1" is not 1 !!";}'
如果输入为:
1
2
它打印:
1 is 1 !!
2 is not 1 !!
https://stackoverflow.com/questions/14478722
复制相似问题