2014-09-10 89 views
2

對於awk,在awk的shell中,我可以使用變量而不是文件路徑嗎?

而不是文件路徑可以有變量?? arr=$(awk -v str=start '$2 ~ "^" str "[0-9]*" { print $2; exit; }' /filepath)

注意輸出在文件路徑之前和現在它在變量「A」。 請嘗試以下操作:

arr=$(awk -v str=start '$2 ~ "^" str "[0-9]*" { print $2; exit; }' ,$a) 
arr=$(awk -v VAR="a" str=start '$2 ~ "^" str "[0-9]*" { print $2; exit; }' ,$a) 

不起作用。

上一篇帖子瞭解更多詳情: 參觀Using awk to find a string in a file

任何幫助將不勝感激。

+0

用途:'ARR = $(回聲 「$ A」 | awk的-v海峽=啓動「$ 2〜 「^」 STR「[0 -9] *「{print $ 2; exit;}')' – anubhava 2014-09-10 14:36:11

+0

對不起,讓我再試一次..將盡快更新.. – kyle 2014-09-10 14:42:39

+0

所以你有shell代碼說(類似)'a-/filepath'?也許你需要'export a =/filepath'。還記得所有的文本,包括Linux/Unix中的變量名都區分大小寫。 '$ a'和'$ A'是兩個不同的變量。你被警告了! ;-) 祝你好運。 – shellter 2014-09-10 14:48:40

回答

1

這個工作,感謝anubhava

用途:

arr=$(echo "$a" | awk -v str=start '$2 ~ "^" str "[0-9]*" { print $2; exit; }')