需求:替换文本中重复字符串的一个为新值。
例如:1.txt中如下内容:
[a]
db_database = db1
db_host = 127.0.0.1
db_port = 3306
db_user = test
db_pass = test
[b]
db_database = db2
db_host = 127.0.0.1
db_port = 3306
db_user = test
db_pass = test1
[c]
db_database = db3
db_host = 127.0.0.1
db_port = 3306
db_user = test
db_pass = test2
如上,需要更改第三部分中db_user=abc,但是该文本中有三个db_user,并且值都为test,但是想更改第三个中的db_user=test1。由于该文件有几百个,并且该值在不指定的行,所以请大佬们给个解决方案。
做个批量,用sed命令修改
大佬,能否给出个详细的答案
sed中只能针对指定行、指定范围、指定的值进行修改,无法对重复出现的值做修改。
@沐雨&清杺: 看看这个https://www.jianshu.com/p/a2a50575e338
@yytxdy: 谢谢您,这个行不通,这个是更改的值是文本中唯一值的,但是我的需求是这个文本中有多个相同的,只想更改其中的一个值。
你这个第三个是以什么为标识的?就是索引是2?还是说上面的c?
您好!说的是c。
你不是都说出来逻辑了,还有啥问题呢。
如果是第三个,那就跳过两个,修改第三个。
如果是C,那就找到C。
总是有个唯一性条件的,把这个唯一性条件写成代码就行了。
麻烦请问下大佬,如果用shell该用什么方法实现这个唯一性的条件,我想了一些办法,但是没办法实现。
@沐雨&清杺:
shell 一样有
判断
循环
这些语句啊,
如果不熟悉 shell 命令写法,就换 python 呗。
linux 下 python 基本也是默认有的。