2011-06-06 90 views
3

我正在使用awk,並且需要找到一個變量,在這種情況下$ 24是否包含單詞3:2-如果是這樣來打印行(對於sed命令) - 變量可能包含更多字母或空格或\ n ....... for ex。如何查找子字符串是否在awk中的變量

$24 == "3:2" {print "s/(inter =).*/\\1\"" "3:2_pulldown" "\"/" >> NR } 

在我的上面一行 - 它從來沒有找到這樣的字符串,儘管它存在。

你能幫助我嗎?

回答

4

如果你要尋找的 「3:2」​​ $ 24,那麼你$24 ~ /3:2/index($24, "3:2") > 0

你爲什麼用awk生成一個sed腳本想要什麼?

更新

爲了從外殼到AWK傳遞變量,使用-v選項:

val="3:2" # or however you determine this value 
awk -v v="$val" '$24 ~ v {print}' 
+0

我不能把它,因爲它是在條件 - 所以我會怎麼做?$ 24〜/ 3:2/ – Shira 2011-06-06 19:13:09

+0

指數正常工作! thx我正在做它cuze我有一個表我想要一行一行 - 根據每行我需要創建一個文件 - 用sed替換一些單詞與表中出現的單詞,做它回答你的問題? – Shira 2011-06-06 19:21:25

1
awk '$24~/3:2/' file_name 

這將檢索算法爲:在字段24

「3 2」
相關問題