我正在使用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
编辑说明 模板和副本是可行的,但由于这种情况我将不愿讨论,但在这种情况下很难使用,但足以说:如果合理,我会使用它们。
答案 0 :(得分:0)
我找到了答案,这与我的预期相反。问题既不是lineinfile也不是替换(请参阅重复的链接以获取建议的解决方案)。实际上,他们在做各自的工作-并使用换行符结束行。
之所以出现此问题,是因为在此之前,该文件仅具有CLRF终止符,当它们唯一存在时它们是不可见的。
引入LF时,将在vim中打印CRLF(^ M),以区分出现在存在两种类型的线路终端。