如何将输入文件cat到输出文件,在输入文件的每两行之间添加一个空行(双倍行距)?

如何将输入文件cat到输出文件,在输入文件的每两行之间添加一个空行(双倍行距)?

在不使用SED的情况下,是否有shell脚本将内容从输入文件复制到输出文件,在输入文件的每两行之间添加一个空行(双倍行距)?我

答案1

IFS=""
while read -r LINE
do
  echo "$LINE"
  echo
done

如果您对它在最后一行后添加一个空行感到困扰,可以这样做:

IFS=""
FIRST=y
while read -r LINE
do
  if [ "$FIRST" != "y" ]
  then
    echo
  fi
  FIRST=n
  echo "$LINE"
done

答案2

这似乎实现了您所追求的目标。

如果 NR(行号)能被 2 整除,则在末尾标记一个额外的换行符。然后打印该行。

$ awk 'NR%2==0{$0=$0"\n"}1' foo.txt
line1
line2

line3
line4

line5
$

如果只是每行之间有一个空行,请使用此

$ awk '{print $0,"\n"}' foo.txt
line1

line2

line3

line4

line5

$

相关内容