由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Linux版 - 请问一个文件区段替换的问题
相关主题
怎么把一行文本里的特定字符串替换为回车换行请教一个关于nohup的问题
请问怎么把两个行数相等的文件合并起来?问个土问题
码工码农,帮忙了! (转载)帮忙!!! 需要比较两文件, 有包子相送
菜鸟问:getline找不到,该如何安装?问个简单script问题
linux tcsh下less的问题怎么手动开始Vmware Server On Windows XP
问一个简单的问题shell 的替换命令怎么用
求助, XFS盘出问题了。命令行下如何批量替换文件里的换行符 (转载)
perl cgi中调用C可执行程序为什么在html中不显示?借跪地文革问题,包子酬谢
相关话题的讨论汇总
话题: build1tok话题: rusage话题: myens话题: resource话题: awk
进入Linux版参与讨论
1 (共1页)
R******d
发帖数: 1436
1
文件中有一段需要换成新提供的内容,请问用shell/perl怎么操作?谢谢了。
举个例子,需要被替换的内容如下:
{
logic_name => 'mask',
batch_size => 10,
resource => 'rusage[myens_build1tok=11]',
memory => ['500k', '1k', '3k'],
retries => 0,
},
想要替换成的内容如下:
{
logic_name => 'mask',
batch_size => 100,
resource => 'rusage[myens_build1tok=10]',
memory => ['500MB', '1GB', '3GB'],
retries => 3,
retry_resource => 'rusage[myens_build1tok=10]',
},
需要被替换的内容通过下面的脚本从文件中提取:
a=`awk '{if($0~/{/){x="";do{x=x"n"$0}while(getline&&!/},/)};if (x~/logic_
name/&&x~/mask/){print x"n"$0|"awk 'NF'"};x=$0}' file`
想要替换的内容可以先放到一个变量里去:
b=`{
logic_name => 'mask',
batch_size => 100,
resource => 'rusage[myens_build1tok=10]',
memory => ['500MB', '1GB', '3GB'],
retries => 3,
retry_resource => 'rusage[myens_build1tok=10]',
},`
剩下的就是替换了,试了下awk,好像不成功,大概因为内容里有特殊字符'等。
R******d
发帖数: 1436
2
bash+perl混合的捣鼓出来了,比较猥琐。
有没有可能awk和sed直接搞定?
export a=`awk '{if($0~/{/){x="";do{x=x"\n"$0}while(getline&&!/},/)};if (x~/
logic_name/&&x~/mask/){print x"\n"$0|"awk 'NF'"};x=$0}' file`
export b=`echo "{
logic_name => 'mask',
batch_size => 100,
resource => 'rusage[myens_build1tok=10]',
memory => ['500MB', '1GB', '3GB'],
retries => 3,
retry_resource => 'rusage[myens_build1tok=10]',
},"`
perl -e 'while (<>){$x.=$_}END{$x=~s/\Q$ENV{'a'}/$ENV{'b'}/;print "$x\n"}'
file
1 (共1页)
进入Linux版参与讨论
相关主题
借跪地文革问题,包子酬谢linux tcsh下less的问题
知道问这个找打但是...问一个简单的问题
快速替换文件里面的特定值求助, XFS盘出问题了。
问一个C Shell的sed用法。perl cgi中调用C可执行程序为什么在html中不显示?
怎么把一行文本里的特定字符串替换为回车换行请教一个关于nohup的问题
请问怎么把两个行数相等的文件合并起来?问个土问题
码工码农,帮忙了! (转载)帮忙!!! 需要比较两文件, 有包子相送
菜鸟问:getline找不到,该如何安装?问个简单script问题
相关话题的讨论汇总
话题: build1tok话题: rusage话题: myens话题: resource话题: awk