在不使用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
$