当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 10 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 怎么提取()中的部分[已解决]
帖子发表于 : 2009-10-25 17:40 
头像

注册: 2008-07-23 20:08
帖子: 1532
地址: http://www.ghostry.cn
送出感谢: 0 次
接收感谢: 1
我从QQ 里道出的好友列表,用grep整理了下,
下子文件内容如下
昵称(235469855)
昵称2哈哈<asdja@sdkf.cn>
水木阿 (658656)
都是这样的,但是我只需要()和《》中的部分。我现把《》都替换成了(),但是每行长度不一,改怎么提取()中的部分呢PS
PS:
我的最终目的是把所所有的行都变成邮件地址。是号码的就加上@qq.com


_________________
http://www.ghostry.cn狂网技术工作室,组网建站,平面设计,java项目,空间域名.
好心人点这里进去注册并且用一次,给我增加点流量http://tinyurl.com/272ncjl
电脑配置:
公司:880G/II250/1TB/2G1333/
家:785G+/II245+/1TB/2G677/


最后由 ghostry 编辑于 2010-05-13 13:23,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 怎么提取()中的部分
帖子发表于 : 2009-10-25 17:43 
头像

注册: 2009-05-20 19:32
帖子: 2462
送出感谢: 0 次
接收感谢: 2
sed 's/(\(.*\))/\1@qq.com/g'


_________________
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
irc://irc.freenode.net/ubuntu-cn


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 怎么提取()中的部分
帖子发表于 : 2009-10-26 10:41 

注册: 2009-09-19 18:17
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
sed 's/.*(\([0-9]*\))/\1@qq.com/g' filename | sed 's/.*(\(.*\))/\1/g'


最后由 maozhx 编辑于 2009-10-26 13:00,总共编辑了 3 次

页首
 用户资料  
 
4 楼 
 文章标题 : Re: 怎么提取()中的部分
帖子发表于 : 2009-10-26 12:04 

注册: 2008-03-30 12:19
帖子: 359
送出感谢: 0 次
接收感谢: 0 次
能详细解释一下.*(\(.*\))/吗?谢谢!


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 怎么提取()中的部分
帖子发表于 : 2009-10-26 12:28 

注册: 2009-09-19 18:17
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
最前面的 “.*” 匹配可能的昵称和空格
里面的括号是捕获值后面给 “\1”
外面的括号是为了匹配数字帐号外面的括号


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 怎么提取()中的部分
帖子发表于 : 2009-10-26 12:30 
头像

注册: 2009-05-20 19:32
帖子: 2462
送出感谢: 0 次
接收感谢: 2
.* 有没有看你是否要 昵称


_________________
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
irc://irc.freenode.net/ubuntu-cn


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 怎么提取()中的部分
帖子发表于 : 2009-10-26 12:49 

注册: 2009-09-19 18:17
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
O_O_BOT 写道:
.* 有没有看你是否要 昵称

“*” 匹配任意多次或者不出现
我只是针对上面给出的格式


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 怎么提取()中的部分
帖子发表于 : 2009-10-27 6:24 

注册: 2008-05-24 8:30
帖子: 1453
送出感谢: 2
接收感谢: 30
再来一个:
代码:
awk -F "[()]" '{print $2 "@qq.com"}'


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 怎么提取()中的部分
帖子发表于 : 2009-10-27 8:55 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
bash的转义罗嗦的。来perl吧。


_________________
● 鸣学


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 怎么提取()中的部分
帖子发表于 : 2010-01-26 21:42 

注册: 2008-10-31 22:12
帖子: 6546
系统: 践兔
送出感谢: 18
接收感谢: 25
代码:
#!/usr/bin/env perl
use 5.010;
chomp($_=<STDIN>);
say "$1@qq.com" if /\((.+)\)/;

如果@是@,要转义


_________________
代码:
] ls -ld //


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 10 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译