Shell - Awk - 从变量中读取

时间:2014-03-28 14:47:45

标签: shell awk

是否可以从变量(例如i)而不是文件读取awk输入?

awk 'something' temp

'temp'可以被变量$ i替换吗?真的在手册页中找不到它。

2 个答案:

答案 0 :(得分:3)

如果您的变量是字符串,则可以使用Bash here-string表示法来执行此操作。

awk 'something' <<< "$temp"

例如:

$ temp='hello:world'
$ awk -F':' '{print $2}' <<< "$temp"
world

如果您的变量是文件,那么只需执行

$ cat file
hello:world
$ f='./file'
$ awk -F':' '{print $1}' "$f"
hello

答案 1 :(得分:0)

在没有here-string支持的POSIX shell中,您可以使用here-doc代替:

awk 'something' <<EOF
$i
EOF

awk 'something' <<< "$i"只是当此文档非常短或已包含在变量中时上述的快捷方式。