首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

shell sed 轮换字符串,高手求解

2013-06-25 
shell sed 替换字符串,高手求解现在我有一个文件test.txt 如下create table tb_con_contractcreate index

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

热点排行