LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1133|回复: 8

问一个关于grep正则表达式的问题,热心的网友看过来。

[复制链接]
发表于 2009-9-16 22:51:57 | 显示全部楼层 |阅读模式
问题是这样的,在一个目录里,有N个文件,有的文件里面包含这样的信息:
http://localhost:8080/services
或者
http://unumu.com/services

我现在想用grep来找出来含有http://unumu.com/services而不含有http://localhost:8080/services的文件。

想了好久,似乎grep无法实现。。。
发表于 2009-9-17 02:17:24 | 显示全部楼层
  1. grep -L 'http://localhost:8080/services' `grep -l 'http://unumu.com/services' *`
复制代码
回复 支持 反对

使用道具 举报

发表于 2009-9-17 22:13:35 | 显示全部楼层

试试这个呢!

cat *.文件后缀 后者直接cat *

cat * |grep "unumu.com" |grep -v "8080"

抽取unumu.com  并排除含有8080 的!
回复 支持 反对

使用道具 举报

发表于 2009-9-17 22:42:08 | 显示全部楼层
LS又UUoC了!
不仅如此,LS的方法文不对题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-17 23:31:45 | 显示全部楼层
Post by lastart;2027563
  1. grep -L 'http://localhost:8080/services' `grep -l 'http://unumu.com/services' *`
复制代码


这段代码比较好玩。我对 ' 和 ` 这个的区别比较陌生,可否讲解一下?
回复 支持 反对

使用道具 举报

发表于 2009-9-18 13:39:42 | 显示全部楼层
有这个时间,google一下就知道了。' 和` 是最基本的常识。
回复 支持 反对

使用道具 举报

发表于 2009-9-18 14:56:25 | 显示全部楼层
这段代码比较好玩。我对 ' 和 ` 这个的区别比较陌生,可否讲解一下?

------------
'字串' 就是把字串刮起來嘛!

`指令` 會展開成指令傳回來的結果。
回复 支持 反对

使用道具 举报

发表于 2009-9-19 23:17:23 | 显示全部楼层
Post by scottding;2027844
这段代码比较好玩。我对 ' 和 ` 这个的区别比较陌生,可否讲解一下?


`指令`是把指令输出作为``的返回值,''就是无安全字符串输出,不做变量识别等。
至于那个grep的意思是,先-l 找出包含那个字串的文件列表,用``作为前一个grep的一个参数,把包含了-L指定的字符串的文件过滤掉
回复 支持 反对

使用道具 举报

发表于 2009-9-20 08:03:44 | 显示全部楼层
-L, --files-without-match
              禁止通常的输出;作为替代,打印出每个在通常情况下不会产生输出的输
              入文件的名字。对每个文件的扫描在遇到第一个匹配的时候就会停止。

       -l, --files-with-matches
              禁止通常的输出;作为替代,打印出每个在通常情况下会产生输出的输入
              文件的名字。对每个文件的扫描在遇到第一个匹配的时候就会停止。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表