直接删除文件中以 CR 开头的行



我想写一个 ksh 脚本删除以回车符开头的文件的所有行。我想指定在同一脚本中我想重用修改后的文件,所以我需要直接在文件中进行修改。

例如,这是我在记事本++中的文件(回车符显示为CRLF,因为它是Windows格式文件(:

CE1;CPr1;CRLF
CE2;CPr2;CRLF
CRLF
CE3;CPr3;CRLF
CRLF
CRLF

我想获得:

CE1;CPr1;CRLF
CE2;CPr2;CRLF
CE3;CPr3;CRLF

到目前为止,我写的脚本是:

sed -i '/^n/d' ListeTable.lst

我也尝试了rR但没有任何效果。

正如我指定的,有以下脚本可以重用修改后的文件,如下所示(但还有更多(:

echo -n "(CE = '$(tail -n 1 ListeTable.lst | cut -d$';' -f1)'and CPr = '$(tail -n 1 ListeTable.lst | cut -d$';' -f2)')"

好的,所以我找到了一个适用于这个问题的正则表达式:'/^s*$/d'(s= 匹配任何空格字符(换行符、空格、制表符(;*= 字符可以随时重复或不存在;$= 到找到的最后一个 \s 字符的末尾(

所以工作代码是:sed -i '/^s*$/d' ListeTable.lst

最新更新