我有我想从某些文件,其中包括引号用grep出这个全系列(rpm命令到下面AWK)。当我尝试grep和grep -F时,我似乎无法获得正确的输出。我试图从grep语句中删除部分尾行,它看起来像“!”造成问题。我试图用单引号包装字符串,也没有运气。谢谢。在grep中转义感叹号?
rpm -qVa | awk '$2!="c" {print $0}'
我有我想从某些文件,其中包括引号用grep出这个全系列(rpm命令到下面AWK)。当我尝试grep和grep -F时,我似乎无法获得正确的输出。我试图从grep语句中删除部分尾行,它看起来像“!”造成问题。我试图用单引号包装字符串,也没有运气。谢谢。在grep中转义感叹号?
rpm -qVa | awk '$2!="c" {print $0}'
反斜杠应该做的伎俩
rpm -qVa | awk '\$2!="c" {print $0}'
不幸的是,这是行不通的。 –
使用单引号 - 当你需要一个单引号,只是下降了单引号,把一个在同一个反斜杠,和然后回去:
grep 'rpm -qVa | awk '\''$2!="c" {print $0}'\' filename
使用双现状TES不仅反斜杠逃脱感叹号,但一切否则将得到由壳代替:
grep "rpm -qVa | awk '\$2\!=\"c\" {print \$0}'" filename
使用POSIX字符串:
grep $'rpm -qVA | awk \'$2!="c" {print $0}\'' filename
使用较少特定模式:
grep 'rpm -qvA | awk .$2.="c" {print $0}.' filename
或者,如果你有$2=="c"
检查以及$2!="c"
,你可以做这样的事情:
grep 'rpm -qvA | awk .$2[^=]="c" {print $0}.' filename
我会去的POSIX串,或者也许是普通单引号选项 - 这在其他炮弹中有着可争议的优势,如dash
。
完整添加grep行示例可能会有帮助。我想它是这样的:'grep'rpm -qVa | awk'$ 2!=“c”{print $ 0}“' – bonsaiviking
如果您正在收到”event not found“,请关闭Bash中的'histexpand'选项。但是,IIRC单引号应该防止这种情况发生。 – tripleee