Ansible lineinfile 将 ^M 添加到行尾?
Ansible lineinfile adding ^M to end of lines?
我正在使用 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
编辑备注
模板和副本是可能的,但在这种情况下很难使用,原因我不会讨论,但足以说明:如果有意义,我会使用它们。
我找到了答案,它与我的预期相反。 lineinfile 和 replace(请参阅重复的 link 以获得建议的解决方案)都不是问题所在。事实上,他们正在做各自的工作 - 并以换行结束行。
问题的出现是因为之前的文件只有CLRF终结符,独占时是不可见的。
当引入 LF 时,CRLF (^M) 打印在 vim 中以区分现在有两种类型的行终止。
我正在使用 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
编辑备注 模板和副本是可能的,但在这种情况下很难使用,原因我不会讨论,但足以说明:如果有意义,我会使用它们。
我找到了答案,它与我的预期相反。 lineinfile 和 replace(请参阅重复的 link 以获得建议的解决方案)都不是问题所在。事实上,他们正在做各自的工作 - 并以换行结束行。
问题的出现是因为之前的文件只有CLRF终结符,独占时是不可见的。
当引入 LF 时,CRLF (^M) 打印在 vim 中以区分现在有两种类型的行终止。