Awkはエスケープされた改行文字を読むことができますか?つまり、過去の改行文字を読みます。

Awkはエスケープされた改行文字を読むことができますか?つまり、過去の改行文字を読みます。

私の入力は次のとおりです。

entry1line1
entry2line1\
entry2line2\
entry2line3
entry3line1

これらの入力をAWKの配列として読み込み、埋め込み改行文字として処理したいと思います。それは可能ですか? GNU機能を使用しないことをお勧めします。

ベストアンサー1

posix awkではgetl​​ineを使うことができます

awk '{while(/\\$/){getline tmp;$0=$0"\n"tmp}print "<LINE>"$0"<LINE>"}' file

最後の行が終わる限り、次の行を追加し続けます\

<LINE>entry1line1<LINE>
<LINE>entry2line1\
entry2line2\
entry2line3<LINE>
<LINE>entry3line1<LINE>

Perlでも同様です。

perl -ne '$_.=<> while /\\$/;chomp;print "<LINE>$_<LINE>\n"' file

おすすめ記事