2014-07-02 54 views
0

我試圖在awk命令中創建一個變量,如下所示,在awk中使用bash變量。但它不工作似乎當內部使用bash變量時,awk命令無法正常工作

b=hi 
$ echo "hihello" |awk -v myvar=$b -F"$0~myvar" '{print $2}' 

實際產量:

<empty/nothing printed > 

預期成果是:

你好

+0

爲什麼你-F包括$ 0〜 –

+2

什麼是'-F「$ 0〜myvar」'? – ghoti

+0

使用:'awk -v myvar = $ b'$ 0〜myvar {print $ 2}'' – anubhava

回答

1

你爲什麼不這樣做:

b=hi ; echo "hihello" | awk -F"$b" '{print $2}' 
hello 
+0

我已經試過這個..無論如何感謝您的答案:) – logan

0

嘗試以下awk命令。將字段分隔符放在BEGIN塊內。

$ b=hi; echo "hihello" | awk -v myvar=$b 'BEGIN{FS=myvar}{print $2}' 
hello 

它將myvar變量的值設置爲字段分隔符。因此inturn打印第二列會給你字符串hello