在bash脚本中编写AWK指令

时间:2016-12-13 10:29:58

标签: bash shell awk

在bash脚本中,我需要这样做:

cat<<EOF> ins.exe
grep 'pattern' file | awk '{print $2}' > results
EOF

问题是$ 2被解释为一个变量,ins.exe文件最终包含 &#34; grep&#39;模式&#39;档案| awk&#39; {print}&#39; &GT;结果&#34;,没有$ 2。

我尝试过使用

echo "grep 'pattern' file | awk '{print $2}' > results" >> ins.exe

但它也是同样的问题。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

逃避$

cat<<EOF> ins.exe
awk '/pattern/ { print \$2 }' file > results
EOF

顺便说一句,无需将grep传递给awk。

使用bash,您还有另一个选项,即使用<<'EOF'。这意味着字符串中不会发生扩展。