我看到awk可識別轉義序列識別輸入的轉義序列
$ awk 'BEGIN {print "foo\nbar"}'
foo
bar
然而,它沒有輸入
$ awk '{print $1}' <<< 'hello\nworld'
hello\nworld
是否可以作出承認逃避輸入序列?
我看到awk可識別轉義序列識別輸入的轉義序列
$ awk 'BEGIN {print "foo\nbar"}'
foo
bar
然而,它沒有輸入
$ awk '{print $1}' <<< 'hello\nworld'
hello\nworld
是否可以作出承認逃避輸入序列?
這適用於變量以及
$ set 'hello\nworld'
$ printf %b "$1" | awk '{print $1}'
hello
world
您正在使用的字符串不會將換行符轉義序列擴展爲實際的換行符。試試這個:
`echo -e "hello\nworld" | awk '{print $1}'`
或者:
awk '{print $1}' <<< "hello
world"
是的,這就是爲什麼我認爲你的答案不能「識別轉義序列」。轉義序列的要點是允許產生任何序列。 (正如我所說的,用awk,C語言,Python語言,或者bash的$'...'形式來嘗試。) – rici
@StevenPenny你的問題是'能否識別輸入中的轉義序列? '如何使用'awk's'來修改輸入來回答你的問題?可能是我解釋你的問題錯了? –
在一般情況下,您想要正確處理任意長度的反斜槓。 ''\\「'應該被解釋爲一個文字反斜槓,''\\\」\ t \ r \ n「'應該是反斜線,雙引號,製表符,回車符,換行符。我不認爲這可能是在Awk中得到了優雅和地道的解決,但是當然,一個蠻力的實現在技術上並不困難,只是單調乏味。 – tripleee