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

全部博文(470)

文章存档

2012年(1)

2011年(18)

2010年(47)

2009年(404)

分类:

2010-03-10 12:35:06

[] [] [] []

有这样一条记录:Mike Harrington:(510) 548-1278:250:100:175F:
我想把Mike Harrington 替换成 xxx xxxxx 也就是在匹配以后把$1以给替换了,使用awk该怎么定?
__________________________________
Just enjoy you time


| | |

$1=xxxxx不就行了?
__________________________________

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



| | |

本帖最后由 a.a 于 2010-03-09 11:21 编辑

awk -F":" '$1=="Louise Mcinnes" /Mike / ' lab4.data

这样?可以这样写:
awk -F":" '/Mike /{print $1="xx xxxx" $2 $3 $4}' lab4.data
这样也可以得出结果。但是需要手动把后面所有的域给打出来,$2 $3 $4
__________________________________
Just enjoy you time


| | |

[root@cestos5 shell]# awk -F: 'BEGIN{OFS=":"}{$1="xxx xxxxx";print}' urfile
xxx xxxxx:(510) 548-1278:250:100:175F:


| | |

回复 linuxboy823_cu


   这样倒是可以,但是就把整个文件的$1 全给替换了。
__________________________________
Just enjoy you time


| | |

本帖最后由 dujie_m 于 2010-03-09 11:27 编辑
  1. echo "Mike Harrington: ( 510 ) 548-1278:250:100:175F:" | awk 'BEGIN{OFS = ":" ;FS = ":"}gsub(/Mike Harrington/,"xxx xxxxx", $1)'
复制代码


| | |

本帖最后由 where27 于 2010-03-09 11:28 编辑

回复 a.a
  1. awk 'BEGIN{FS=":";OFS=":"}/Mike /{$1="xx xxxx" }1' lab4.data
复制代码
__________________________________
it民工
雄起!!


| | |

  1. awk -F: 'BEGIN{OFS=":"}/Mike Harrington/{$1="xx xxxx";print}' urfile
复制代码
__________________________________


| | |

本帖最后由 a.a 于 2010-03-10 09:40 编辑

感谢楼上的朋友们的回帖。几位的方法都能达到,谢谢了。
也可以参考我的另一种方法 :
awk -F: '/(Mike|Harrington){$1="xx xxxx";print}' file
__________________________________
Just enjoy you time


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