2016-12-13 94 views
0

在bash腳本編寫的AWK指令,我需要這樣做:在bash腳本

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

的問題是,$ 2解釋爲一個變量和文件ins.exe結束含有 「 grep'pattern'文件| awk'{print}'> results「,沒有$ 2。

我使用

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

嘗試,但它是同樣的問題。

我該如何解決這個問題?

+1

你試過'awk'{print \ $ 2}''? – GMichael

回答

3

只是逃避$

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

無需管grep來AWK,順便說一句。

使用bash,您還有另一種選擇,即使用<<'EOF'。這意味着字符串內不會出現擴展。

+0

謝謝,很好的答案! – Qwertuy