1

我有一个小测试文件,其中包含:

awk this   
and not awk this  
but awk this  
so do awk this  

我已经在 bash 中尝试了以下 awk 命令,但每个命令都不产生输出:

f=awk; awk '/$f/ && !/not/' test.txt
f=awk; awk '/\$f/ && !/not/' test.txt
f=awk; awk '/"$f"/ && !/not/' test.txt
f=awk; awk -v f="$f" '/f/ && !/not/' gtest.txt

由于. "_!

如何在同一命令中搜索变量并否定另一个字符串?

4

2 回答 2

2

像这样使用awk

f='awk'

awk -v f="$f" -v n='not' '$0 ~ f && $0 !~ n' file
awk this
but awk this
so do awk this

或者,如果您不想传递n='not'awk

awk -v f="$f" '$0 ~ f && $0 !~ /not/' file

awk this
but awk this
so do awk this
于 2017-03-15T15:51:35.057 回答
0

awk 为我指向 gawk,以下工作正常:

awk -vf=awk '$0 ~ f && !/not/' file
于 2017-03-16T05:24:05.583 回答