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

Deleting lines beginning with a CR in a file directly

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

例如这是我在 Notepad++ 中的文件(回车 return 显示为 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

我也试过 \r\R 但没有任何效果。

正如我指定的那样,有一个以下脚本可以重用修改后的文件,看起来像(但还有更多):

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