shell 批量替换文本中的某一段和批量在多个文件中的某行下添加多行代码
作者:互联网
需求:
要求在多个yml文件中修改terminationGracePeriodSeconds: 30为terminationGracePeriodSeconds: 360
批量替换文本中的某一段脚本如下:
[root@VM-1-31-centos shell]# cat for.sh #!/bin/bash for i in `cat list.txt` do sed -i "s/terminationGracePeriodSeconds: 30/terminationGracePeriodSeconds: 360/g" $i/$i.yml done [root@VM-1-31-centos shell]# cat list.txt a b c 这里的场景是目录和目录下的文件名是一样的,文件名后缀为.ynl
批量在多个文件中的某行下添加多行代码,添加代码如下:
[root@VM-1-31-centos shell]# cat 11.txt lifecycle: preStop: exec: command: - sleep - 60s
###值得注意的是缩进的问题
执行脚本如下:
[root@VM-1-31-centos shell]# cat pi.sh #!/bin/bash for i in `cat list.txt` do sed -i '/imagePullPolicy\: Always/r 11.txt' $i/$i.yml done
list文件
list文件如下: [root@VM-1-31-centos shell]# cat list.txt a b c 这里的场景是目录和目录下的文件名是一样的,文件名后缀为.ynl
标签:shell,centos,批量,list,VM,cat,txt,某行 来源: https://www.cnblogs.com/zzy01/p/15190287.html