2011-06-06 68 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”
相关问题