在Windows 7平台上使用GNU SED v4.2.1从包含段落的文本文件中删除LAST空行

时间:2019-03-09 15:07:43

标签: windows gnu-sed

我有很多文本文件,其中包含用空白行分隔的文本块,并且只需要删除文件中的最后一个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的解决方案。谁能帮忙吗?

0 个答案:

没有答案