繼續,Awk doesn't match all match all my entries,我現在正在嘗試編寫一個腳本來在不同的機器上執行此操作。在腳本中,我想運行/ usr/xpg4/bin/awk,如果它存在其他常規awk。 我不能做簡單的事情,因爲我的腳本太複雜 - 我不想做一些用戶友好的事情,它有一些選擇。 所以我記錄正確的AWK的變量是這樣的:執行命令從變量
command='awk '"'"'match($0,/^[[:alpha:]_][[:alnum:]_]*\**[[:space:]]+[[:alpha:]_][[:alnum:]_]*[[:space:]]*\([^)]*\)/) { print substr($0,RSTART,RLENGTH) ";\n" }'"'";
之後我嘗試執行
碼= $($命令$文件);
我得到這個錯誤:
awk: command line:1: 'match($0,/^[[:alpha:]_][[:alnum:]_]*\**[[:space:]]+[[:alpha:]_][[:alnum:]_]*[[:space:]]*\([^)]*\)/)
awk: command line:1:^bad character « ' » in expression
,如果我把他們趕走,這並不意味着什麼...
[不要把命令放在字符串中。使用數組](http://mywiki.wooledge.org/BashFAQ/050)。 –
爲什麼你把代碼放入數據?爲什麼不使用函數而不是變量?也相關:[BashFAQ/050](http://mywiki.wooledge.org/BashFAQ/050)。 –