BBS.ChinaUnix.net
首页 | 新闻 | Linux | FreeBSD | AIX | Windows | 博客 | 论坛 | 存储 | 网络 | 人才 | Wiki | 资料 | 读书 | 手册 | 下载 | 空间 | 搜索
  免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 



字条替换问题
首页 » 论坛 » Shell »  
[打印] [订阅] [收藏] [本帖文本页] [推荐此主题给朋友,立即获积分]
  [已解决] 本主题悬赏 可用积分 5  
版主 yidou   帅哥 (衣兜)
版主-法师




CU编号: 112728
注册:2003-11-18
最后登录: 2009-07-04
帖子:5613
精华:1

可用积分:5627 (富足长乐)
信誉积分:185
专家积分:102 (本版:0)
空间积分:2
推广积分:0

来自:Shanghai, China
状态:...保密...

[个人空间] [短信] [博客]


1楼 发表于 2009-1-7 16:15 

从文件中以关键字查找某一行, 然后找到该行的第九项 (该行的项之间以逗号“,”为分隔符, 不是以空格为分隔符), 并把该项替换成另一关键字,保存文件。

Thanks.



您对本贴的看法:鲜花[0] 臭蛋[0]
ynchnluiti (andy)
精灵使



CU编号: 90672
注册:2003-8-29
最后登录: 2009-07-03
帖子:3715
精华:0

可用积分:24776 (巨富豪门)
信誉积分:100
专家积分:646 (本版:190)
空间积分:0
推广积分:1456

状态:...离线...

[个人空间] [短信] [博客]


     最佳答案 
2楼 发表于 2009-1-7 16:15 



QUOTE:
原帖由 yidou 于 2009-1-7 17:44 发表
哈哈, 两位太幽默了。

更新一下结果。
原:
xxxx,Local IP[0],,,,,,,source
变成了:
,target

该行前面的信息丢失:(

替换时需要转义吧

QUOTE:
cat abc
xxxxx,keyword1,,,,,,,xyz
xxxxx,eyword1,,,,,,,xyz
xxxxx,kyword1,,,,,,,xyz
xxxx,Local IP[0],,,,,,,source



awk -F, -v OFS=, '/Local IP\[0\]/{$9="keyword2"}1' abc



QUOTE:
xxxxx,keyword1,,,,,,,xyz
xxxxx,eyword1,,,,,,,xyz
xxxxx,kyword1,,,,,,,xyz
xxxx,Local IP[0],,,,,,,keyword2




您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

天行健,君子以自强不息
发奋忘食,乐以忘优,不知老之将至
温故而知新
我是DBA (好运)
法师
休息休息



CU编号: 713644
注册:2008-6-3
最后登录: 2009-07-04
帖子:5812
精华:2

可用积分:11333 (大富大贵)
信誉积分:30
专家积分:95 (本版:65)
空间积分:808
推广积分:30

来自:厦门
状态:...离线...

[个人空间] [短信] [博客]


3楼 发表于 2009-1-7 16:19 

awk -F,   '/关键字/s/$9/另一关键字/g' 文件>保存文件
能不能把你的文件贴出来一行。
直接脑残了。我

[ 本帖最后由 我是DBA 于 2009-1-7 16:27 编辑 ]



您对本贴的看法:鲜花[0] 臭蛋[0]
ly5066113   帅哥 (Tim)
法师


CU奥运火炬传递手2008
CU编号: 465018
注册:2006-9-13
最后登录: 2009-07-03
帖子:5298
精华:0

可用积分:22062 (巨富豪门)
信誉积分:120
专家积分:617 (本版:566)
空间积分:0
推广积分:132

来自:长春
状态:...离线...

[个人空间] [短信] [博客]


4楼 发表于 2009-1-7 16:20 

sed -ir '/key1/s/(([^,]*,){8})[^,]*/\1key2/' urfile



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。
ynchnluiti (andy)
精灵使



CU编号: 90672
注册:2003-8-29
最后登录: 2009-07-03
帖子:3715
精华:0

可用积分:24776 (巨富豪门)
信誉积分:100
专家积分:646 (本版:190)
空间积分:0
推广积分:1456

状态:...离线...

[个人空间] [短信] [博客]


5楼 发表于 2009-1-7 16:20 



QUOTE:
原帖由 yidou 于 2009-1-7 16:15 发表
从文件中以关键字查找某一行, 然后找到该行的第九项 (该行的项之间以逗号“,”为分隔符, 不是以空格为分隔符), 并把该项替换成另一关键字,保存文件。

Thanks.



QUOTE:
1,2,3,4,hello world,6,7,8,9,10
1,2,3,4,welcome,6,7,8,9,10



sed -r '/hello world/{s/(([^,]*,){8})([^,]*)/\1key2/}' a



sed '/hello world/{s/\(\([^,]*,\)\{8\}\)\([^,]*\)/\1key2/}' a




您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

天行健,君子以自强不息
发奋忘食,乐以忘优,不知老之将至
温故而知新
寂寞烈火   帅哥
老法王


CU奥运火炬传递手2008
荣誉会员  
CU编号: 187152
注册:2004-10-1
最后登录: 2009-07-04
帖子:24678
精华:5

可用积分:14618 (大富大贵)
信誉积分:110
专家积分:171 (本版:102)
空间积分:1425
推广积分:0

来自:北京海淀
状态:...离线...

[个人空间] [短信] [博客]


6楼 发表于 2009-1-7 16:22 

try:

awk -F, '{if($9=="string"){$9="newstring";print}else print}' ur-file > newfile



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

孰能浊以静之徐清?
孰能安以动之徐生?
ly5066113   帅哥 (Tim)
法师


CU奥运火炬传递手2008
CU编号: 465018
注册:2006-9-13
最后登录: 2009-07-03
帖子:5298
精华:0

可用积分:22062 (巨富豪门)
信誉积分:120
专家积分:617 (本版:566)
空间积分:0
推广积分:132

来自:长春
状态:...离线...

[个人空间] [短信] [博客]


7楼 发表于 2009-1-7 16:22 



QUOTE:
原帖由 我是DBA 于 2009-1-7 16:19 发表
awk -F,   '/关键字/s/$9/另一关键字/g' 文件>保存文件
能不能把你的文件贴出来一行。

你的awk也可以用sed的语法?



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。
ynchnluiti (andy)
精灵使



CU编号: 90672
注册:2003-8-29
最后登录: 2009-07-03
帖子:3715
精华:0

可用积分:24776 (巨富豪门)
信誉积分:100
专家积分:646 (本版:190)
空间积分:0
推广积分:1456

状态:...离线...

[个人空间] [短信] [博客]


8楼 发表于 2009-1-7 16:25 



QUOTE:
原帖由 ly5066113 于 2009-1-7 16:22 发表


你的awk也可以用sed的语法?

伪代码



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

天行健,君子以自强不息
发奋忘食,乐以忘优,不知老之将至
温故而知新
我是DBA (好运)
法师
休息休息



CU编号: 713644
注册:2008-6-3
最后登录: 2009-07-04
帖子:5812
精华:2

可用积分:11333 (大富大贵)
信誉积分:30
专家积分:95 (本版:65)
空间积分:808
推广积分:30

来自:厦门
状态:...离线...

[个人空间] [短信] [博客]


9楼 发表于 2009-1-7 16:29 

回复 #7 ynchnluiti 的帖子

:shock: 今天忙晕了我。



您对本贴的看法:鲜花[0] 臭蛋[0]
版主 yidou   帅哥 (衣兜)
版主-法师




CU编号: 112728
注册:2003-11-18
最后登录: 2009-07-04
帖子:5613
精华:1

可用积分:5627 (富足长乐)
信誉积分:185
专家积分:102 (本版:0)
空间积分:2
推广积分:0

来自:Shanghai, China
状态:...保密...

[个人空间] [短信] [博客]


10楼 发表于 2009-1-7 17:06 

文件可能像这样:

.....
xxxxx,keyword1,,,,,,,xyz
.......

需要找到keyword1这一行, 并把xyz项替换成keyword2



您对本贴的看法:鲜花[0] 臭蛋[0]

首页 » 论坛 » Shell »


 


Copyright © 2001-2009 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

Processed in 0.101284 second(s), 4 queries , Gzip enabled