1

我使用 bash 命令将几行附加到多个配置文件:

> for filename in *.ovpn; do
> printf 'configurationscript-security 2\nup /etc/openvpn/update-resolv-conf\ndown /etc/openvpn/update-resolv-conf' >> $filename; 
> done

然而,控制字符“^M”出现在配置文件中每一行的末尾: 在此处输入图像描述

我在 vim 中打开文件,bash 命令之前的文件如下所示: 在此处输入图像描述

我很好奇为什么“^M”出现在每行的末尾?谢谢。

4

2 回答 2

3

是Windows的回车dos2unix用来转换文件。Vim 识别文件格式并正确显示。

于 2012-11-15T13:21:35.643 回答
3

如果不可用,^M也可以通过 in 中的正则表达式删除。vimdos2unix

:%s/^M//g,可以输入为: Esc:%s/ctrl+Vctrl+M//g

不知道为什么在 linux 系统上只用一个简单的 printf 命令就会发生这种情况,也许看看你正在选择正确版本的 printf。我已经在 linux 系统上进行了尝试,并且本地 printf 保持正确的行尾,正如您所期望的那样。

于 2012-11-15T13:30:09.253 回答