直接删除文件中以 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
我想写一个 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