ドキュメントの4行ごとに新しい行を追加したいと思います。
たとえば、
abc
def
ghi
jkl
mno
pqr
stu
vw
xyz
次のようにする必要があります。
abc
def
ghi
jkl
mno
pqr
stu
vw
xyz
答え1
sed(GNU)
sed '0~4G'
man sed は ~ を次のように解釈します。
first〜stepは、
最初の行から始まるすべての最初のステップと一致します。たとえば、「sed -n 1〜2p」は入力ストリームのすべての奇数行を印刷し、アドレス2〜5は2行目から始まり、5行目ごとに一致します。最初の値はゼロです。この場合、sedはstepと同じように機能します。 (これは拡張です。)
sed(その他)
短い(100行は見苦しい):
sed 'n;n;n;G'
または、新しい行数を計算します。
sed -e 'p;s/.*//;H;x;/\n\{4\}/{g;p};x;d'
または、より移植性を高めるために、以下を作成します(一部のsedバージョンのコメントを削除)。
sed -e ' # Start a sed script.
p # Whatever happens later, print the line.
s/.*// # Clean the pattern space.
H # Add **one** newline to hold space.
x # Get the hold space to examine it, now is empty.
/\n\{4\}/{ # Test if there are 4 new lines counted.
g # Erase the newline count.
p # Print an additional new line.
} # End the test.
x # match the `x` done above.
d # don't print anything else. Re-start.
' # End sed script.
アッ
おそらく:
awk '1 ; NR % 4 == 0 {printf"\n"} '
答え2
次のコマンドを試してください。
awk ' {print;} NR % 4 == 0 { print ""; }'
答え3
sed -e 'n;n;n;G'
perl -pe '$. % 4 or s/$/\n/'
perl -lpe '$\ = $. % 4 ? "\n" : "\n\n"'
出力レコード区切り文字を4行ごとに変更します。