Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2043587
  • 博文数量: 470
  • 博客积分: 10206
  • 博客等级: 上将
  • 技术积分: 5620
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-03 12:50
文章分类

全部博文(470)

文章存档

2012年(1)

2011年(18)

2010年(47)

2009年(404)

分类:

2009-08-12 10:47:00

[] [] [] [] []
  帅哥
侠客




CU编号: 372862
注册:2006-2-15
最后登录: 2009-08-12
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-11 15:08 

比如有一个文本。
替换掉包含aa 或者 bb的行为123
替换掉包含cc 并且 dd的行为456
例子将
123abcd
aa456
cca
ccasdfdd
变为
123abcd
123
cca
456



您对本贴的看法:
| | |
  帅哥 (黑哥)
法师



CU编号: 631768
注册:2007-10-22
最后登录: 2009-08-12
帖子:
精华:0







来自:小山村
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-11 15:13 

回复 #1 skyning 的帖子

sed,awk



您对本贴的看法:

__________________________________

LIVE FREE OR DIE!     K.I.S.S.


| | |
  帅哥 ((小学生))
天使
小学生



CU编号: 468971
注册:2006-9-24
最后登录: 2009-08-11
帖子:
精华:0







状态:...保密...

[] [] [博客]


[]     顶部
发表于 2009-8-11 15:17 

回复 #1 skyning 的帖子

sed  's/.*aa.*/123/g;s/.*dd.*/456/g'



您对本贴的看法:

__________________________________

小学生
| | |
  帅哥 (狼烟)
天使
八十万色狼总教头



CU编号: 547805
注册:2007-4-5
最后登录: 2009-08-11
帖子:
精华:0







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

[] [] [博客]


[]     顶部
发表于 2009-8-11 15:20 

aabbccdd
这种怎么替换?



您对本贴的看法:
| | |
  帅哥 (狼烟)
天使
八十万色狼总教头



CU编号: 547805
注册:2007-4-5
最后登录: 2009-08-11
帖子:
精华:0







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

[] [] [博客]


[]     顶部
发表于 2009-8-11 15:23 

不考虑上面这种情况的,aabbccdd会被替换为456:

CODE:
awk '/aa|bb/{$0=123}/cc/&&/dd/{$0=456}1' URFILE




您对本贴的看法:
| | |
  帅哥
侠客




CU编号: 372862
注册:2006-2-15
最后登录: 2009-08-12
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-11 15:26 

谢谢各位回答。尤其是wtuter  

另外,还想请教一下。
如果匹配了一行,向替换成多行,怎么办啊?
比如上面的。
替换掉包含aa 或者 bb的行为
123
mm
替换掉包含cc 并且 dd的行为
456
kk
例子将
123abcd
aa456
cca
ccasdfdd
变为
123abcd
123
mm
cca
456
kk



您对本贴的看法:
| | |
  帅哥 (狼烟)
天使
八十万色狼总教头



CU编号: 547805
注册:2007-4-5
最后登录: 2009-08-11
帖子:
精华:0







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

[] [] [博客]


[]     顶部
发表于 2009-8-11 15:28 

回复 #6 skyning 的帖子

加\n呗~

CODE:
awk '/aa|bb/{$0="123\nmm"}/cc/&&/dd/{$0="456\nkk"}1' URFILE




您对本贴的看法:
| | |
  帅哥 ((小学生))
天使
小学生



CU编号: 468971
注册:2006-9-24
最后登录: 2009-08-11
帖子:
精华:0







状态:...保密...

[] [] [博客]


[]     顶部
发表于 2009-8-11 15:32 

回复 #6 skyning 的帖子

[\2]sed -r 's/.*(aa|bb).*/123\nmm/g;s/.*cc.*dd.*/456\nkk/g' 1
123abcd
123
mm
cca
456
kk



您对本贴的看法:

__________________________________

小学生
| | |
  帅哥
侠客




CU编号: 372862
注册:2006-2-15
最后登录: 2009-08-12
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-11 15:35 

这样就行啊,你真牛!!

看来我要认真学一下awk了。

QUOTE:
原帖由 kwokcn 于 2009-8-11 15:28 发表
加\n呗~

awk '/aa|bb/{$0="123\nmm"}/cc/&&/dd/{$0="456\nkk"}1' URFILE




您对本贴的看法:
| | |
  帅哥
侠客




CU编号: 372862
注册:2006-2-15
最后登录: 2009-08-12
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-11 15:36 

非常感谢,
sed刚看了几天,还不熟,多谢了。

QUOTE:
原帖由 wtuter 于 2009-8-11 15:32 发表
[\2]sed -r 's/.*(aa|bb).*/123\nmm/g;s/.*cc.*dd.*/456\nkk/g' 1
123abcd
123
mm
cca
456
kk




您对本贴的看法:
| | |

» » »

阅读(767) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~