如何在文本文件的所有行之间添加N空行?

Orr*_*r22 3 awk sed tail

我有一个看起来像的文件

a
b
c
d
Run Code Online (Sandbox Code Playgroud)

假设我想添加N行(在示例3中,但实际上我需要20或100行,具体取决于文件)

a


b


c


d 
Run Code Online (Sandbox Code Playgroud)

我可以使用sed在所有空白之间添加一个空白行

sed -i '0~1 a\\' file
Run Code Online (Sandbox Code Playgroud)

但是sed -i '0~3 a\\' file每3行插入一行。

Wik*_*żew 5

您可以使用GNU sed

sed -i 'G;G;G' file
Run Code Online (Sandbox Code Playgroud)

G;G;G将追加的每个非最终线以下三个空行。

awk

awk 'BEGIN{ORS="\n\n\n"};1'
Run Code Online (Sandbox Code Playgroud)

观看在线sedawk演示

如果需要动态设置换行数,请使用

nl="
"
awk -v nl="$nl" 'BEGIN{for(c=0;c<3;c++) v=v""nl;ORS=v};1' file > newfile
Run Code Online (Sandbox Code Playgroud)

  • 用`awk -v ORS ='\ n \ n \ n'1更短 (2认同)