我有一个语法非常简单的文件:
cat /tmp/test
ARCH=""prtconf -b | awk '/^name:/ {print $2}'
我试图grep它:
cat /tmp/test | grep "prtconf -b | awk '/^name:/ {print $2"
ARCH=""prtconf -b | awk '/^name:/ {print $2}'
让grep字符串更长一点,添加}到最后:
cat /tmp/test | grep "prtconf -b | awk '/^name:/ {print $2"}
找不到任何东西
为什么当我添加}到行尾时grep停止工作?
操作系统是Solaris 10U11
答案 0 :(得分:1)
$2
指的是命令行参数,所以在这里它将替换模式中的空白字符。所以你需要像$
\$
cat /tmp/test | grep "prtconf -b | awk '/^name:/ {print \$2}"
在你的模式中没有添加}
它是有效的,因为它将实际模式与prtconf -b | awk '/^name:/ {print
匹配为您的输入。但是如果你在模式中添加}
,那么它会尝试匹配prtconf -b | awk '/^name:/ {print }
(文件中没有,因此它不会显示输出。)