我正在Windows中创建文件,因此它们会自动创建为CRLF文件;我需要它们成为LF文件。
文件由批处理脚本创建,然后使用它们并随后将其删除,因此我需要在批处理脚本中进行更改,因此我无法使用Change EOL on multiple files in one go中给出的答案。我正在使用MinGW64,因此也没有PowerShell,这意味着Powershell v2: Replace CRLF with LF也无法解决我的问题。我真的需要通过MinGW64 cmd在批处理脚本中完成此操作。
我认为只用sed删除CR部分会很容易,但是我已经尝试了所有可以想到的方法,以及在互联网上发现的所有方法,但没有一个起作用。
我已经尝试过:
sed -e "s/\x0d$//" myCRLFfile > newLFfile
sed -e "s/\x0D$//" myCRLFfile > newLFfile
sed -e "s/\r$//" myCRLFfile > newLFfile
awk "{gsub(\""\r\"";\""\"");print} myCRLFfile > newLFfile
我也尝试用^转义$和\字符。我还尝试了所有不带双引号的sed(但不能带单引号,在cmd中不起作用)。 所有这些都是“有效的”,我的意思是没有错误。他们什么也没做,CR仍然在这里。
我什至尝试对文件进行十六进制转储,然后对这个文件进行sed s/0d//
,但是不,那些0d
只是不想删除!
有什么主意吗?我正在为这个“预期容易的”事情而苦苦挣扎:'(