- ../logs/nginx:/var/log/nginx
env_file:
- ../env/uid.env
应转换为
- ../logs/nginx:/var/log/nginx
env_file:
- ../env/nginx.env
- ../env/uid.env
文件中多次出现"env_file",这就是为什么我也需要匹配上面的行。我正在为换行而挣扎。我试过
awk '/ env_file:/{print;print " - ../env/nginx.env";next}1' filename
这是有效的,但不包括上面的行。然后我试过了,但没用。
awk '/nginxn env_file:/{print;print " - ../env/nginx.env";next}1' filename
编辑:澄清我的问题。由于文件中多次出现"env_file",我无法使用第一次尝试。我需要匹配上面的一行(包含"nginx"的行(。这就是我正在努力解决的问题。
如果您想匹配一个由两行组成的块,您可以使用一个"flag"变量,该变量在块的第一行匹配时设置。
awk '
1
/nginx/{flag=1;next}
flag==1 && / env_file:/{flag=0;print " - ../env/nginx.env"}
flag=0
' filename