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