0

我在 centos 服务器上有一个脚本,我使用 VIM 在服务器上编写了脚本。该脚本用于编辑配置文件。当我在编辑后检查配置文件时,每行未编辑的行末尾都有一个 ^M。编辑的行很好。

        cat hibernate.properties | 
    sed -i.bk \
    -e 's%\(^hibernate\.connection\.url\=ristor:jdbc:postgresql:\/\/127\.0\.0\.1/\).*%\'1$dbname'%' \
    -e 's/\(^hibernate\.connection\.username\=\).*/\'1$dbuser'/' \
    -e 's/\(^hibernate\.connection\.password\=\).*/\'1$pws'/' hibernate.properties

这是用于编辑配置文件的代码。为什么将 ^M 放在未编辑的每一行的末尾?

4

2 回答 2

0

显示的^M可能是某些行上的窗口样式的行尾。在运行脚本之前尝试运行文件dos2unix

例如:

dos2unix hibernate.properties
于 2012-11-20T11:18:43.947 回答
0

这不太可能添加\r,更像是文件已经有了它们,但dosvim. 您的脚本实际上它接触过的每一行中删除了它,vim并且不再考虑该文件,因此显示仍然留在其中的dos回车符。一旦删除它们(应该这样做),它就不太可能再次发生。%s/<Ctrl-V><Ctrl-M>$//vim

于 2012-11-20T11:19:30.873 回答