Chinaunix

标题: 如何用sed处理文件中的内容next_start_time = '2016-03-01 11:00:56' [打印本页]

作者: 274920831    时间: 2017-03-18 15:28
标题: 如何用sed处理文件中的内容next_start_time = '2016-03-01 11:00:56'
如题:
我有写了一个shell脚本:
#!/bin/bash
update database set next_start_time = '2016-03-01 11:00:56', where id = '12345'
update database set next_start_time = '2016-03-01 11:00:56', where id = '23456'
update database set next_start_time = '2016-03-01 11:00:56',where id = '34567'
update database set next_start_time = '2016-03-01 11:00:56', where id = '45678'

我现在想用sed命令达到两种效果,第一个是把 next_start_time = '2016-03-01 11:00:56' 全部替换成 task_priority = 'urgent'  ,使用sed命令应该如何来写?
第二个是把 每一行的next_start_time = '2016-03-01 11:00:56'后面都加上 task_priority = 'urgent' ,使用sed命令应该如何来写?

作者: 农民伯伯丶    时间: 2017-03-18 16:41
sed "s#next_start_time = '2016-03-01 11:00:56'#task_priority = 'urgent'#g"
sed -r "s#(set next_start_time = '2016-03-01 11:00:56',)#\1 task_priority = 'urgent'#g"
作者: 274920831    时间: 2017-03-19 10:19
回复 2# 农民伯伯丶

非常感谢农民伯伯,我也做出来了.

将每行指定的内容替换掉:
sed "s/next_start_time = '2016-03-01 11:00:56'/123/g"
由于被替换的内容有单引号,所以sed的参数是用的双引号

在每行指定的内容加123:
sed "s/next_start_time = '2016-03-01 11:00:56'/&123/g" 2



作者: 274920831    时间: 2017-03-19 10:22
回复 2# 农民伯伯丶

谢谢农民伯伯,我的命令是这样的:

替换每行指定的内容:
sed "s/next_start_time = '2016-03-01 11:00:56'/123/g"  2
由于被替换的内容是带单引号,所以sed的参数使用的是双引号

在每行指定的内容后加入123
sed "s/next_start_time = '2016-03-01 11:00:56'/&123/g" 2





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2