Ansible lineinfile/regexp/line:为什么要在文件末尾添加行?
我不明白lineinfle是如何工作的,我使用: -名称:配置 线条填充: 路径:/etc/apt/apt.conf.d/50s-upgrades regexp:'^\/\/\${distro\u id}:\${distro\u codename}-更新;' 行:'${distro_id}:${distro_codename}-更新;' 国家:现在 我希望文件中的这一行不会被注释:Ansible lineinfile/regexp/line:为什么要在文件末尾添加行?,ansible,ansible-2.x,Ansible,Ansible 2.x,我不明白lineinfle是如何工作的,我使用: -名称:配置 线条填充: 路径:/etc/apt/apt.conf.d/50s-upgrades regexp:'^\/\/\${distro\u id}:\${distro\u codename}-更新;' 行:'${distro_id}:${distro_codename}-更新;' 国家:现在 我希望文件中的这一行不会被注释: // "${distro_id}:${distro_codename}-updates"; 与此相反,
// "${distro_id}:${distro_codename}-updates";
与此相反,此行保持原样,但在文件末尾,
我明白了:
所以匹配发生了,但为什么在文件末尾有新行而不是替换?肯定还有其他问题。该代码的工作方式与expexted相同
shell> diff 50unattended-upgrades 50unattended-upgrades.orig
1c1
< "${distro_id}:${distro_codename}-updates";
---
> // "${distro_id}:${distro_codename}-updates";
肯定还有其他问题。该代码的工作方式与expexted相同
shell> diff 50unattended-upgrades 50unattended-upgrades.orig
1c1
< "${distro_id}:${distro_codename}-updates";
---
> // "${distro_id}:${distro_codename}-updates";
您的regexp不会转义所有特殊符号,因此不存在导致添加新行而不是替换的匹配项。据英国《每日邮报》报道,卷曲的大括号应该去掉 这个任务在我的Ubuntu 18.04服务器上按预期工作
- name: "configure"
lineinfile:
path: /etc/apt/apt.conf.d/50unattended-upgrades
regexp: '^//\s+"\$\{distro_id\}:\$\{distro_codename\}-updates";'
line: ' "${distro_id}:${distro_codename}-updates";'
state: present
差异
您的regexp不会转义所有特殊符号,因此不存在导致添加新行而不是替换的匹配项。据英国《每日邮报》报道,卷曲的大括号应该去掉 这个任务在我的Ubuntu 18.04服务器上按预期工作
- name: "configure"
lineinfile:
path: /etc/apt/apt.conf.d/50unattended-upgrades
regexp: '^//\s+"\$\{distro_id\}:\$\{distro_codename\}-updates";'
line: ' "${distro_id}:${distro_codename}-updates";'
state: present
差异