我有一个Unix shell脚本,它执行以下操作:
现在在#2中,如果我插入文本,^ M会附加在文件的所有行上.
例如:
echo " a" >> /cust/vivek.txt
echo " b" >> /cust/vivek.txt
vi vivek.txt
abc^M
bcd^M
a^M
b^M
Run Code Online (Sandbox Code Playgroud)
有什么办法可以避免这个吗
dog*_*ane 13
我不确定如何echo生成^M字符但你可以通过运行dos2unix你的文件来删除它们,如下所示:
dos2unix /cust/vivek.txt
Run Code Online (Sandbox Code Playgroud)
^M是回车符,通常在从 Windows 复制文件时出现。用:
od -xc filename
Run Code Online (Sandbox Code Playgroud)
这应该给出您的文件的外观的低级列表。如果您的文件不是来自 Windows,那么另一种可能是您的终端设置没有正确翻译。检查 TERM 环境变量是否正确。
如果文件来自 Windows,则使用dos2unix或sed 's/\r//' file > file.new