循环遍历 awk 中的单列条件语句

Loop over a single column condition statement in awk

我想在语句为真时打印一行,但我想遍历多个变体。这是一个批处理脚本:

Awk "(==1) {print [=10=]}" file > out.txt & type out.txt >> all_out.txt
Awk "(==3) {print [=10=]}" file > out.txt & type out.txt >> all_out.txt
Awk "(==5) {print [=10=]}" file > out.txt & type out.txt >> all_out.txt

但不是很优雅。这可以写入for循环或if语句吗?我在安装了 cygwin 的 windows 上使用 gnuawk。

如有任何帮助,我们将不胜感激。

尝试:

awk '(==1) || (==3) || (==5)' Input_file  > all_out.txt

awk '(%2 != 0)' Input_file  > all_out.txt

考虑到您想将所有条件输出到一个文件中,如果不是这种情况请告诉我。

试试这个 -

$ awk '( ~ /^1$|^3$|^5$/) {print [=10=]}' file