Ansible lineinfile是否将^M添加到行尾?

Ansible lineinfile是否将^M添加到行尾?,ansible,dos2unix,Ansible,Dos2unix,我正在使用ansible的lineinfile更新文件 一旦我更新了该文件(该文件有效),该文件在每行末尾都有^M个字符 这种行为是不受欢迎的-如何关闭它?这似乎是违反直觉的,我需要dos2unix来纠正 - name: Update database.php - username lineinfile: dest: /var/www/html/database.php regexp: '^\$username.*$' line: "$username = '{{ m

我正在使用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
编辑注释
模板和副本是可能的,但在这种情况下很难使用,原因我不想说,但我只想说:如果有意义,我会使用它们。

我找到了答案,结果与我的预期相反。lineinfle和replace(有关建议的解决方案,请参阅复制链接)都不是问题所在。事实上,他们在做各自的工作——用换行符结束换行

出现问题的原因是在此之前,文件只有CLRF终止符,当它们以独占方式存在时,这些终止符是不可见的

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

可能是重复的