テキストを処理するときは、2行ごとに改行を削除する必要があります。
テキスト例:
this is line one
and this is line two
the third and the
fourth must be pasted too
希望の出力:
this is line one and this is line two
the third and the fourth must be pasted too
ループを試しましたが、while
whileループは悪い習慣です。tr
これを行うために他のコマンドを使用できますか?
ベストアンサー1
paste
(たとえば、標準のPOSIXシンプルユーティリティでもありますtr
)これはツールです。
この改行文字を空白ではなく空白に変更したいとしましょう。削除済みサンプルに示すように:
paste -d ' ' - - < file
または:
paste -sd ' \n' file
本当に削除したい場合は、' '
に交換してください。'\0'
3つのうち2つを交換するには:
paste -sd ' \n' file
3つのうち1つ(2番目から始まる):
paste -sd '\n \n' file
など。
もう1つの利点paste
は、終了していない回線が残らないことです。たとえば、削除した場合すべてファイルに改行文字(tr -d '\n' < file
またはと同じtr '\n' ' ' < file
)がある場合、行は改行文字で終わる必要があるため、まったく行がなくなります。したがって、通常、有効なテキストに必要な末尾の改行を追加するpaste
(たとえば、paste -sd '\0' file
または)を使用することをお勧めします。paste -sd ' ' file