Ansible lineinfile在行尾添加^ M吗?

时间:2018-07-31 00:29:36

标签: ansible dos2unix

我正在使用ansible的lineinfile更新文件。

一旦我更新了文件(可以正常工作),该文件的每行末尾都有^ M个字符。

这种行为是不受欢迎的-如何关闭它?似乎有悖常理,然后我需要执行dos2unix来进行纠正?

- name: Update database.php - username
  lineinfile:
    dest: /var/www/html/database.php
    regexp: '^\$username.*$'
    line: "$username = '{{ mariadb_rc_user }}';"
    backrefs: yes

编辑说明 模板和副本是可行的,但由于这种情况我将不愿讨论,但在这种情况下很难使用,但足以说:如果合理,我会使用它们。

1 个答案:

答案 0 :(得分:0)

我找到了答案,这与我的预期相反。问题既不是lineinfile也不是替换(请参阅重复的链接以获取建议的解决方案)。实际上,他们在做各自的工作-并使用换行符结束行。

之所以出现此问题,是因为在此之前,该文件仅具有CLRF终止符,当它们唯一存在时它们是不可见的。

引入LF时,将在vim中打印CRLF(^ M),以区分出现在存在两种类型的线路终端。