4

awk がエスケープシーケンスを認識できることがわかりました

$ awk 'BEGIN {print "foo\nbar"}'
foo
bar

ただし、入力からはそうではありません

$ awk '{print $1}' <<< 'hello\nworld'
hello\nworld

入力からエスケープシーケンスを認識させることはできますか?

4

3 に答える 3

3

あなたはこのようなことをする必要があります -

[jaypal:~/temp] awk '{print $1}' <<< $'hello\nworld'
hello
world

bash(1)

于 2013-06-04T02:12:51.370 に答える
0

これは変数でも機能します

$ set 'hello\nworld'

$ printf %b "$1" | awk '{print $1}'
hello
world
于 2013-06-04T03:19:04.207 に答える
0

使用しているヒア文字列は、改行エスケープ シーケンスを実際の改行に展開しません。これを試して:

`echo -e "hello\nworld" | awk '{print $1}'`

または、次のようにします。

awk '{print $1}' <<< "hello
world"
于 2013-06-04T02:03:22.787 に答える