gpt4 book ai didi

awk - 当条件被执行时,如何让 awk 移动到下一行?

转载 作者:行者123 更新时间:2023-12-03 11:38:32 25 4
gpt4 key购买 nike

我正在尝试写一个 awk检查某些条件并丢弃满足这些条件的行的脚本。

具体条件是扔掉文件的前两行和任何以文本xyzzy:开头的行.为此,我编码了:

awk '
NR < 2 {}
/^xyzzy:/ {}
{print}'

认为它会丢弃满足这两个条件之一的行并以其他方式打印。

不幸的是,似乎 print即使该行与其他两种模式之一匹配,也会被处理。

有没有类似C的 continue将在下一行移动而忽略当前行的所有其他条件检查的操作?

我想我可以使用类似 ((NR > 1) && (!/^xyzzy:/)) {print} 的东西作为第三条规则,但这对我来说似乎很丑陋。

或者,还有其他方法可以做到这一点吗?

最佳答案

使用关键字 next作为你的行动

当您想要遍历 2 个文件时,此关键字通常很有用;有时它是您想要处理两次的同一个文件。

您将看到以下习语:

awk '
FNR==NR {
< stuff that works on file 1 only >
next
}
{
< stuff that works on file 2 only >
}' ./infile1 ./infile2

关于awk - 当条件被执行时,如何让 awk 移动到下一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8723015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com