是否可以从变量(例如i)而不是文件读取awk输入?
awk 'something' temp
'temp'可以被变量$ i替换吗?真的在手册页中找不到它。
答案 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"
只是当此文档非常短或已包含在变量中时上述的快捷方式。