一个非常常见的问题,但我无法用sed解决它.
我有一个脚本文件(一批命令)说myfile.txt要立即执行以创建列表.现在,当我执行批处理操作时,我的命令行界面清楚地显示它无法解析命令,因为换行符^M在每行末尾加起来.
我认为sed这是最好的方式.我试过:
sed -e 's/^M/d' myfile.txt > myfile1.txt
mv myfile1.txt myfile.txt
Run Code Online (Sandbox Code Playgroud)
它没用.我也尝试过这个并没有用:
sed -e 's/^M//g' myfile.txt > myfile1.txt
mv myfile1.txt myfile.txt
Run Code Online (Sandbox Code Playgroud)
然后我想可能sed是在行的开头将它作为M字符,因此没有结果.所以我尝试过:
sed -e 's/\^M//g' myfile.txt > myfile1.txt
mv myfile1.txt myfile.txt
Run Code Online (Sandbox Code Playgroud)
但没有变化.我正在做一个基本的错误吗?请告诉我,我很擅长sed.
我找到了一个解决方案,但是在vi编辑器中打开文件并在命令模式下执行:
:set fileformat=unix
:w
Run Code Online (Sandbox Code Playgroud)
但我也想要它sed.
Sac*_*acx 11
^M不是字面上的^M.替换^M为\r.您可以使用相同的表示tr; 这两个命令都删除回车:
tr -d '\r' < input.txt > output.txt
sed -e 's/\r//g' input.txt > output.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10849 次 |
| 最近记录: |