1

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

我试过了:

  1. cat $var | awk 'regex'
  2. echo $var | awk 'regex'
  3. awk 'regex' <<< $var

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

4

3 回答 3

0

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

echo "$var" | awk 'regex'
于 2013-10-29T07:07:32.453 回答
0

试试这个 :

$ awk -v awkvar="$var" 'BEGIN{if (awkvar ~ "foobar"){print var}}'
foobar
于 2013-10-29T07:07:40.503 回答
0

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

awk 'regex' <<< "$var"
于 2013-10-29T07:16:57.130 回答