N行ごとに改行を削除

N行ごとに改行を削除

テキストを処理するときは、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

ループを試しましたが、whilewhileループは悪い習慣です。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

おすすめ記事