CentOS 下怎么批量修改 /var/XX/A.conf 文件中的内容,XX 是可变文件夹,要修改的配置文件 A.conf 是固定名称,要求对 A 中的多个变量值进行修改或追加变量,小弟有点 python 基础
CentOS 下怎么批量修改 /var/XX/A.conf 文件中的内容,XX 是可变文件夹,要修改的配置文件 A.conf 是固定名称,要求对 A 中的多个变量值进行修改或追加变量,小弟有点 python 基础
|
no1xsyzySep 27, 2019
1
一般不是写作 /var/*/A.conf 或者 /var/**/A.conf 么?
因此,看得出你没有 Unix 基础。 另外,准备用 python 了还不简单?我还以为你想用 awk/sed 呢 |
|
guxingkeSep 27, 2019 via Android
2
有锤子 有钉子 锤就是了
|
|
mikeguanSep 27, 2019 via Android
3
1.用*通配目录,sed 直接修改文件
2.目录太多的话,可以先 find 然后 sed 进行修改 3.用 Python 遍历目录读文件修改应该也行 |
|
loadingSep 27, 2019
4
walk 一遍目录,判断文件名就行,都 python 了。
|
|
lihongjie0209Sep 27, 2019
5
find | sed
|
|
XSGSep 27, 2019
6
```
sed -i 's/aaa/bbb/g' `find /var/ -name A.conf` ``` |
|
7
@no1xsyzy XX 是有固定前缀的一些文件夹,不是所有的文件夹
|
|
TechzeroSep 27, 2019 via Android
8
@solopython 那就 /var/XX*/ 呗
|
|
no1xsyzySep 27, 2019
9
有这提问题的时间( 1.5 小时)代码已经写好了
|
|
MyPassWordisSep 27, 2019
10
@XSG #6 pipline 和 subshell 哪个好点?一直习惯用管道,还真不怎么这么写
|
|
11
@loading 怎么替换文件中指定的变量名及其值?
|
|
12
@no1xsyzy 知道啥叫抛砖引玉吗
|
|
henicesSep 27, 2019
13
用 perl 吧, 不要忘记这个老东西。
|
|
14
|
|
neroxpsSep 27, 2019
15
楼主的意思是还需要解析每一个 conf 文件?
这样就上 python 或者 bash 就是了,两大运维工具想咋搞都行 |
|
blackeeperSep 27, 2019
16
懂 shell,那么 find | xargs | sed 搞定
懂 python,work 遍历一遍就可以了 |
|
loadingSep 27, 2019 via Android
17
@solopython 正则表达式
|
|
18
不出力,还屁话多,鄙视你
|
|
19
@loading @blackeeper walk 搞定,3Q
import os import re list=[] for root,dirs,files in os.walk("/var/",topdown=False): for name in files: if name.startswith("A.conf"): list.append(os.path.join(root,name)) for a in list: with open(a,'r+') as f: data = f.read() f.seek(0) f.write(re.sub(r"model(.*)","model=4",data)) f.truncate() |
|
TimePPTSep 27, 2019
20
如果用 Python3,可以试试 pathlib,比 os.path 好使很多
|
|
bobyliveSep 27, 2019
21
|
|
TimePPTSep 27, 2019
22
|
|
ForeverdxaSep 27, 2019
23
我至少可以用 4 中语言给你实现
|
|
NeveroldmilkSep 28, 2019
24
用 shell 命令,别用 python。
|
|
realpgSep 28, 2019
25
@solopython #12
你这不叫抛砖引玉 叫懒 |