带有变量和否定的 Awk 多个搜索词
Awk multiple search terms with a variable and negation
我有一个小测试文件包含:
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
由于 !
.
,使用双引号 "
在 shell 中产生 "event not found" 错误
如何在同一命令中搜索变量并取反另一个字符串?
像这样使用awk
:
f='awk'
awk -v f="$f" -v n='not' '[=10=] ~ f && [=10=] !~ n' file
awk this
but awk this
so do awk this
或者如果您不想将 n='not'
传递给 awk
:
awk -v f="$f" '[=11=] ~ f && [=11=] !~ /not/' file
awk this
but awk this
so do awk this
awk 指向我的 gawk,下面的工作正常:
awk -vf=awk '[=10=] ~ f && !/not/' file
我有一个小测试文件包含:
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
由于 !
.
"
在 shell 中产生 "event not found" 错误
如何在同一命令中搜索变量并取反另一个字符串?
像这样使用awk
:
f='awk'
awk -v f="$f" -v n='not' '[=10=] ~ f && [=10=] !~ n' file
awk this
but awk this
so do awk this
或者如果您不想将 n='not'
传递给 awk
:
awk -v f="$f" '[=11=] ~ f && [=11=] !~ /not/' file
awk this
but awk this
so do awk this
awk 指向我的 gawk,下面的工作正常:
awk -vf=awk '[=10=] ~ f && !/not/' file