我尝试在 Centos 上运行以下命令,但出现错误? “(”附近出现意外标记
gawk { if($0=="id323"){print $0} } doc.txt
答案1
您需要将实际awk
脚本放在强引号中,以防止 shell 在将命令传递到 之前看到它们并尝试解析它们awk
:
gawk '{ if( $0 == "id123"){ print $0 } }' doc.txt
顺便说一句,你可以更优雅地做到这一点:
gawk '$0 == "id123" { print $0 }' doc.txt
答案2
我不知道你想达到什么目的。这段代码只是让你知道是否有是文档中包含 id323 的行。您不会从中获得任何进一步的信息。所以一个简单的 grep 就足够了。
此外:我认为给定的解决方案根本不正确。我认为它应该是:
gawk '$0 ~/id323/ { print $0 }' doc.txt
或者更短
gawk '$0 ~/id323/' doc.txt