我看到 awk 可以识别转义序列
$ awk 'BEGIN {print "foo\nbar"}'
foo
bar
但是,从输入来看,它没有
$ awk '{print $1}' <<< 'hello\nworld'
hello\nworld
可以让它从输入中识别转义序列吗?
您使用的 here-string 不会将换行符转义序列扩展为实际的换行符。尝试这个:
`echo -e "hello\nworld" | awk '{print $1}'`
或者:
awk '{print $1}' <<< "hello
world"
这也适用于变量
$ set 'hello\nworld'
$ printf %b "$1" | awk '{print $1}'
hello
world