日期:2014-05-16  浏览次数:20714 次

shell sed 替换字符串,高手求解
现在我有一个文件test.txt 如下
create table tb_con_contract

create index idx_tb_con_contract_borrow_id

revoke "informix".tb_con_contract safsdfdfd

我需要把文本中,有tb_的字符串,替换成字符串加日期的形式,如下:
create table tb_con_contract_20130503

create index idx_tb_con_contract_borrow_id_20130503

revoke "informix".tb_con_contract_20130503 safsdfdfd

使用sed,请问如何做到呢?
小弟对正则半桶水,搞了半天也不行,只能求助朋友们了。
shell sed

------解决方案--------------------
好像这样就可以了:
[seesea@CSDN ~]$ cat file
create table tb_con_contract

create index idx_tb_con_contract_borrow_id

revoke "informix".tb_con_contract safsdfdfd

[seesea@CSDN ~]$ cat file 
------解决方案--------------------
 sed 's/tb_[^ ]*/&_20130503/g'
create table tb_con_contract_20130503

create index idx_tb_con_contract_borrow_id_20130503

revoke "informix".tb_con_contract_20130503 safsdfdfd

------解决方案--------------------
尽量少用cat
sed 's/tb_[^ ]*/&_20130503/g' urfile


来个awk
awk '{for(i=1;i<=NF;i++)if($i~/tb_/)$i=$i"_20130503";print}' urfile