[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 2# Python

python好,是不是应该这样的

sed -n "/w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*/p" d:\5.txt

结果有些偏差啊,sed可以去重复嘛?
我自己瞎写的是这样的:
sed "/@gmail/!d" d:\5.txt

不"干净",不是纯粹的email地址,把整行都弄下来了,其实,只需要email地址,别的不要.
请帮我看下下列理解对不对:
sed "/@gmail/!d" 中,一对双引号"",在最外边,把其他的包括起来,一对斜线//,里面放的是匹配的正则,也可能是直接的表达,我不太清楚这一对双引号和一对斜线//是什么意思,如何正确使用,网上sed资料看了不少,还是概念不清楚啊,唉.

TOP

回复 16# wangb70


双引号是命令分隔符,告诉sed双引号里面是它需要执行的命令。
这个例子中的斜线里面的内容是用于正则匹配的。

sed1line里面有删除重复行的例子,可以参考一下:
http://bbs.chinaunix.net/thread-336126-1-1.html

TOP

本帖最后由 wangb70 于 2013-7-26 10:41 编辑

回复 17# Python

看了2遍"抛砖引玉----翻译加注sed1line",我直接找删除重复行的例子,好象没看见啊,是不是它没有直接说明是删除重复行,而要自己变化变化用法?
我再仔细看看.原来在这里:# delete duplicate, consecutive lines from a file (emulates "uniq")
# First line in a set of duplicate lines is kept, rest are deleted.
#删除文件中重复的连续的行(似于"uniq"命令)
#重复行中第一行保留,其他删除
sed '$!N; /^\(.*\)\n\1$/!P; D'  
###如果不是最后一行,就把下一行附加在模式空间,然后进行查找操作
###"^"和"$"中间的内容如果有重复就匹配成功.如果匹配不成功就用P打印
###第一行. 然后删除第一行.

# delete duplicate, nonconsecutive lines from a file. Beware not to
# overflow the buffer size of the hold space, or else use GNU sed.
#删除文件中重复的,但不连续的行。注意不要溢出保留空间的缓冲器的大小,
#否则使用GNU sed.
sed -n 'G; s/\n/&&/; /^\([ -~]*\n\).*\n\1/d; s/\n//; h; P'   
###在我的linux环境执行不了,出错是sed: -e expression #1, char 34:
###Invalid range end.是不是所谓的溢出保留空间的大小了呢?我也不得而知.
###大家补充吧.!!?????????????????

TOP

返回列表