[英]ansible - replace a string or word in existing line without replace all the line
我只想替換passwd中jenkins用戶的主目錄,我想lineinfile
對此不好,因為它將替換所有行,並且我需要保留用戶ID和組ID,例如:
當前行: jenkins:x:1002:1002::/home/jenkins:/bin/bash
更改為: jenkins:x:1002:1002::/var/lib/jenkins:/bin/bash
/ home / jenkins-> / var / lib / jenkins
- name: Set the Jenkins home directory in passwd
lineinfile:
dest: /etc/passwd
regexp: '^jenkins=.*'
line: '?'
register: jenkins_passwd
notify: restart jenkins
比賽
^(jenkins:.:\d+:\d+::)[^:]*
替換為
\1/var/lib/jenkins
這與/etc/passwd
正確格式化的行的起始行與其原始目錄匹配。 我們希望保留的信息被分組在一個捕獲組中,該捕獲組在當前主目錄定義之前停止。 要進行替換,我們引用該組,然后添加新的主目錄定義。 該行的末尾保持不變。
比賽
::。*詹金斯
用。。。來代替
:: / var / lib / jenkins
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.