バックスラッシュ文字で終わるすべての行を結合する方法は?

バックスラッシュ文字で終わるすべての行を結合する方法は?

sedやawkなどの一般的なコマンドラインツールを使用して、バックスラッシュなどの特定の文字で終わるすべての行を連結できますか?

たとえば、次のファイルがあるとします。

foo bar \
bash \
baz
dude \
happy

私は次のような出力を得たいと思います。

foo bar bash baz
dude happy

ベストアンサー1

より短くて簡単なsedソリューション:

sed  '
: again
/\\$/ {
    N
    s/\\\n//
    t again
}
' textfile

GNUを使用している場合は1行sed

sed ':x; /\\$/ { N; s/\\\n//; tx }' textfile

おすすめ記事