CentOS 下怎么批量修改 /var/XX/A.conf 文件中的内容,XX 是可变文件夹,要修改的配置文件 A.conf 是固定名称,要求对 A 中的多个变量值进行修改或追加变量,小弟有点 python 基础
1
no1xsyzy 2019-09-27 09:15:41 +08:00
一般不是写作 /var/*/A.conf 或者 /var/**/A.conf 么?
因此,看得出你没有 Unix 基础。 另外,准备用 python 了还不简单?我还以为你想用 awk/sed 呢 |
2
guxingke 2019-09-27 09:15:43 +08:00 via Android
有锤子 有钉子 锤就是了
|
3
mikeguan 2019-09-27 09:16:38 +08:00 via Android
1.用*通配目录,sed 直接修改文件
2.目录太多的话,可以先 find 然后 sed 进行修改 3.用 Python 遍历目录读文件修改应该也行 |
4
loading 2019-09-27 09:16:39 +08:00
walk 一遍目录,判断文件名就行,都 python 了。
|
5
lihongjie0209 2019-09-27 09:18:26 +08:00
find | sed
|
6
XSG 2019-09-27 09:24:35 +08:00
```
sed -i 's/aaa/bbb/g' `find /var/ -name A.conf` ``` |
7
solopython OP @no1xsyzy XX 是有固定前缀的一些文件夹,不是所有的文件夹
|
8
Techzero 2019-09-27 09:30:48 +08:00 via Android
@solopython 那就 /var/XX*/ 呗
|
9
no1xsyzy 2019-09-27 10:41:21 +08:00
有这提问题的时间( 1.5 小时)代码已经写好了
|
10
MyPassWordis 2019-09-27 10:44:23 +08:00
@XSG #6 pipline 和 subshell 哪个好点?一直习惯用管道,还真不怎么这么写
|
11
solopython OP @loading 怎么替换文件中指定的变量名及其值?
|
12
solopython OP @no1xsyzy 知道啥叫抛砖引玉吗
|
13
henices 2019-09-27 14:22:47 +08:00
用 perl 吧, 不要忘记这个老东西。
|
14
no1xsyzy 2019-09-27 14:54:07 +08:00 1
|
15
neroxps 2019-09-27 15:26:31 +08:00
楼主的意思是还需要解析每一个 conf 文件?
这样就上 python 或者 bash 就是了,两大运维工具想咋搞都行 |
16
blackeeper 2019-09-27 15:31:12 +08:00
懂 shell,那么 find | xargs | sed 搞定
懂 python,work 遍历一遍就可以了 |
17
loading 2019-09-27 15:56:13 +08:00 via Android
@solopython 正则表达式
|
18
solopython OP 不出力,还屁话多,鄙视你
|
19
solopython OP @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() |
20
TimePPT 2019-09-27 16:52:22 +08:00
如果用 Python3,可以试试 pathlib,比 os.path 好使很多
|
21
bobylive 2019-09-27 16:57:20 +08:00
|
22
TimePPT 2019-09-27 17:05:39 +08:00
|
23
Foreverdxa 2019-09-27 19:51:04 +08:00
我至少可以用 4 中语言给你实现
|
24
Neveroldmilk 2019-09-28 09:51:15 +08:00
用 shell 命令,别用 python。
|
25
realpg 2019-09-28 09:55:30 +08:00
@solopython #12
你这不叫抛砖引玉 叫懒 |