bashコマンド(この場合はgrep)の出力を取得し、2行ごとに空白行を挿入したいと思います。
not
like
this ...
but
like
this!
Bashでこれを行う賢明な方法は何ですか?
答え1
テキストファイルを使用してこれを行う方法はいくつかあります。最も簡単なのはおそらく
$ sed G filename
答え2
使用先pr
:coreutils
$ 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 ...
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