我使用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”出现在每一行的末尾?感谢。
答案 0 :(得分:3)
是Windows“carriage return,使用dos2unix
转换文件。 Vim识别file format并正确显示。
答案 1 :(得分:3)
^M
如果vim
不可用,也可以通过dos2unix
中的正则表达式删除。
:%s/^M//g
,输入为: Esc
:%s/
ctrl + V ctrl + M < / KBD> //g
不知道为什么在Linux系统上只使用简单的printf命令就可以实现这一点,也许看看你是否正在使用正确版本的printf。我已经在Linux系统上使用了这个,并且本地printf保持正确的行结尾,正如您所期望的那样。