出力に「二重間隔」を追加するには? [コピー]

出力に「二重間隔」を追加するには? [コピー]

bashコマンド(この場合はgrep)の出力を取得し、2行ごとに空白行を挿入したいと思います。

not
like
this ...

but

like

this!

Bashでこれを行う賢明な方法は何ですか?

答え1

テキストファイルを使用してこれを行う方法はいくつかあります。最も簡単なのはおそらく

$ sed G filename

答え2

使用先prcoreutils

$ grep '' file | pr -Td
not

like

this ...

(参考にしてください、する最後の行は2倍の間隔で表示されます。sed '$!G')と同じではありません。からman pr

   -d, --double-space
          double space the output

   -T, --omit-pagination
          omit page headers and trailers, eliminate any pagination by form
          feeds set in input files

答え3

次のファイルから始めます。

$ cat >file
not
like
this ...

sedは働きます:

$ sed 's/$/\n/' file
not

like

this ...

awkも同様です。

$ awk 1 ORS='\n\n' file
not

like

this ...

1awkのprint-the-lineの秘密の略語です。これはORS='\n\n'awk に 1 つではなく 2 つの改行文字で出力行を分離するように指示します。

もっと

提案されているように、より短いsedコマンドスチールドライバー、例:

sed '$!G' file

このGコマンドは改行文字を追加し、スペアスペース最後までパターン空間。予約済みスペースはデフォルトで空であるため、各行の末尾に改行文字を追加します。プレフィックスは、$!sedにすべての行でこれを行うように指示します。とは別に最後の一つ。

答え4

Test
10
20
30

Output
perl -pe "s/$/\n/" test 
10

20

30

関連情報