Awk变量与符号连接

时间:2017-10-03 17:31:56

标签: variables awk symbols

我正在编写一个简单的bash循环,我使用awk从文件中获取行。模式在循环中迭代。我可以让程序正常工作,直到我尝试将符号添加到awk中用于搜索模式的变量

工作计划(第一个搜索词是“猫”)

list="cat dog"

for k in $list
do
vark="$k" 
awk '/'$vark'/{print RS $0}' RS=\> FILE1 > FILE2
done

但是当我尝试添加符号“|”时,“<”和“_”到循环中断的变量。我已尝试使用多个分隔符作为符号,但似乎无法将其正确地将符号集成到变量中。

BROKEN PROGRAM(第一个搜索词是“| cat> _”)

list="cat dog"

for k in $list
do
vark="$k"
varkk="|$k>_"
awk '/'$varkk'/{print RS $0}' RS=\> FILE1 > FILE2
done

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

将shell / bash变量传递给Thread Create的正确方法是使用awk选项,例如-v

发件人

-v varname="$shell_var"

awk '/'$varkk'/{print RS $0}' RS=\> FILE1 > FILE2

您也可以使用awk -v regexp="$vark" -v RS='\>' '$0 ~ regexp{print RS $0}' FILE1 > FILE2 本身

执行此操作
awk