我正在尝试编写一个awk
脚本来检查某些条件并丢弃符合这些条件的行.
具体条件是丢弃文件的前两行以及以文本开头的任何行xyzzy:
.为此,我编写了:
awk '
NR < 2 {}
/^xyzzy:/ {}
{print}'
Run Code Online (Sandbox Code Playgroud)
我认为它会丢掉满足这两个条件之一的线条,否则就会打印出来.
不幸的是,print
即使该线与其他两种模式中的一种相匹配,它似乎也在被处理.
是否有类似C的continue
动作将在下一行移动而忽略当前行的所有其他条件检查?
我想我可以使用类似((NR > 1) && (!/^xyzzy:/)) {print}
第三条规则的东西,但这对我来说似乎相当难看.
或者,还有另一种方法吗?
Sie*_*geX 33
使用关键字next
作为您的操作
当您想迭代2个文件时,此关键字通常很有用; 有时它是你想要处理两次的同一个文件.
你会看到以下成语:
awk '
FNR==NR {
< stuff that works on file 1 only >
next
}
{
< stuff that works on file 2 only >
}' ./infile1 ./infile2
Run Code Online (Sandbox Code Playgroud)