【发布时间】:2012-11-23 10:18:27
【问题描述】:
一个非常常见的问题,但我无法使用 sed 解决它。
我有一个脚本文件(一批命令)说myfile.txt 要立即执行以创建一个列表。现在,当我执行批处理操作时,我的命令行界面清楚地显示它无法将命令解析为换行符^M 在每一行的末尾加起来。
我认为sed 是最好的解决方法。我试过了:
sed -e 's/^M/d' myfile.txt > myfile1.txt
mv myfile1.txt myfile.txt
没有用。我也试过了,还是不行:
sed -e 's/^M//g' myfile.txt > myfile1.txt
mv myfile1.txt myfile.txt
然后我想可能是sed 将它作为行首的 M 字符,因此没有结果。所以我尝试了:
sed -e 's/\^M//g' myfile.txt > myfile1.txt
mv myfile1.txt myfile.txt
但没有变化。我在做一个基本的错误吗?请指教,因为我不擅长sed。
我找到了一个解决方案,即在 vi 编辑器中打开文件并在命令模式下执行以下操作:
:set fileformat=unix
:w
但我也希望它在sed 中。
【问题讨论】:
-
这不是你直接问的:dos2unix,除了sed,也是这样的。您的问题向我暗示您对此一无所知。 UNIX 有很多工具,这个工具非常单一。