将变量传递给AWK命令

时间:2013-10-29 07:06:24

标签: regex bash awk

我有一个AWK命令,我想在bash脚本中使用它。我想将AWK一个大文本文件作为变量。

我试过了:

  1. cat $var | awk 'regex'
  2. echo $var | awk 'regex'
  3. awk 'regex' <<< $var
  4. 这三种形式都不起作用。当我在shell awk 'regex' file中尝试这些命令时,它可以工作。 如何将变量作为输入传递给AWK命令,我不想将文件传递给AWK。这是否可能。

3 个答案:

答案 0 :(得分:0)

您需要引用变量以防止换行符转换为空格:

echo "$var" | awk 'regex'

答案 1 :(得分:0)

试试这个:

$ awk -v awkvar="$var" 'BEGIN{if (awkvar ~ "foobar"){print var}}'
foobar

答案 2 :(得分:0)

你非常接近,这也应该有效:

awk 'regex' <<< "$var"