出力に「2 行間隔」を追加するにはどうすればよいでしょうか?

出力に「2 行間隔」を追加するにはどうすればよいでしょうか?

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

not
like
this ...

but

like

this!

bash でそれを実行するスマートな方法はありますか?

答え1

テキストファイルでこれを行うには多くの方法があります。最も簡単な方法はおそらく

$ sed G filename

答え2

prfrom の使用coreutils:

$ grep '' file | pr -Td
not

like

this ...

(このする最終行はダブルスペースにします(たとえば、 とは異なります)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 ...

1は、awk の 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

関連情報