前景提要
关于linux中文本进行批量替换的问题,麻烦大佬们看到了帮忙出个大招
0 悬赏园豆: 5 [待解决问题] 需求:替换文本中重复字符串的一个为新值。
例如: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。由于该文件有几百个,并且该值在不指定的行,所以请大佬们给个解决方案。 沐雨&清杺 | 初学一级 | 园豆: 197
提问于:2020-06-05 10:59 显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
< > 分享
分享您的问题
所有回答(3) 0 做个批量,用sed命令修改 yytxdy | 园豆:1093 (小虾三级) | 2020-06-05 11:04 大佬,能否给出个详细的答案 支持( 0 ) 反对( 0 ) 沐雨&清杺 | 园豆:197 (初学一级) | 2020-06-05 11:05 sed中只能针对指定行、指定范围、指定的值进行修改,无法对重复出现的值做修改。 支持( 0 ) 反对( 0 ) 沐雨&清杺 | 园豆:197 (初学一级) | 2020-06-05 11:06 @沐雨&清杺: 看看这个https://www.jianshu.com/p/a2a50575e338 支持( 0 ) 反对( 0 ) yytxdy | 园豆:1093 (小虾三级) | 2020-06-05 11:06 @yytxdy: 谢谢您,这个行不通,这个是更改的值是文本中唯一值的,但是我的需求是这个文本中有多个相同的,只想更改其中的一个值。 支持( 0 ) 反对( 0 ) 沐雨&清杺 | 园豆:197 (初学一级) | 2020-06-05 11:09 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 你这个第三个是以什么为标识的?就是索引是2?还是说上面的c? 顾晓北 | 园豆:10022 (专家六级) | 2020-06-05 11:16 您好!说的是c。 支持( 0 ) 反对( 0 ) 沐雨&清杺 | 园豆:197 (初学一级) | 2020-06-05 11:21 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 你不是都说出来逻辑了,还有啥问题呢。
如果是第三个,那就跳过两个,修改第三个。
如果是C,那就找到C。
总是有个唯一性条件的,把这个唯一性条件写成代码就行了。 但是我的需求是这个文本中有多个相同的,只想更改其中的一个值。*
你想修改其中哪一个值,你应该有个判断标准,这个标准换成代码就可以了。 爱编程的大叔 | 园豆:30664 (高人七级) | 2020-06-05 12:33 麻烦请问下大佬,如果用shell该用什么方法实现这个唯一性的条件,我想了一些办法,但是没办法实现。 支持( 0 ) 反对( 0 ) 沐雨&清杺 | 园豆:197 (初学一级) | 2020-06-05 12:36 @沐雨&清杺:
shell 一样有
判断
循环
这些语句啊,
如果不熟悉 shell 命令写法,就换 python 呗。
linux 下 python 基本也是默认有的。 支持( 0 ) 反对( 0 ) 爱编程的大叔 | 园豆:30664 (高人七级) | 2020-06-05 12:42 编辑文本 预览 上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要 登录 以后才能回答,未注册用户请先 注册 。