我有很多文本文件,其中包含用空白行分隔的文本块,并且只需要删除文件中的最后一个CR-LF,从而删除最后一个空白行。例如,文件的格式如下:
qwerty
asdfgh
<empty line>
zxcvbn
jklmnb
<last empty line>
Windows SED的行为不同于Unix SED。引号必须是双引号,并且“ s / \ n // g”不会删除任何\ n字符。为了删除它们,需要先将整个文件读入模式缓冲区,然后才能对其进行编辑。例如:
sed ":a;N;$!ba;s/\n//g" input.txt
将删除Windows平台上的所有\ n字符,只保留一行文本,后跟一个空白行。
sed -e :a -e "/^\n*$/{$d;N;ba" -e "}" input.txt
在Unix平台上,但在Windows平台上,删除文件末尾的所有空白行。
但是,到目前为止,我未能找到仅删除最后一个\ n的解决方案。谁能帮忙吗?