日期:2014-05-16  浏览次数:20760 次

如何用grep表达‘或’的关系?不能使用egrep
如题, 需要用grep 在一堆文件里抓取名字包含 str1 或str2的文件名。

我自己尝试的是
ls | grep -E '(str1|str2)'

但是发现有些类UNIX不支持-E 选项。 请问怎么表达str1或str2的关系啊?

------解决方案--------------------
ls *{iwin,other}*

------解决方案--------------------
要用grep啊
那就
ls 
------解决方案--------------------
 grep  'str1\
------解决方案--------------------
str2'

------解决方案--------------------
ls
------解决方案--------------------
grep -e 'str1' -e 'str2'
这种呢
------解决方案--------------------
引用:
感谢楼上,但是我还要用grep -v 去排除匹配的内容。
请问用grep 怎么写呢?  这个*{iwin,other}*  似乎不是正则吧?

不是正则,是wildcard
------解决方案--------------------
ls
------解决方案--------------------
awk   '!/iwin
------解决方案--------------------
other/'

------解决方案--------------------
ls 
------解决方案--------------------
 sed '/str1\
------解决方案--------------------
str2/d'

ls 
------解决方案--------------------
 sed '/str1\
------解决方案--------------------
str2/!d'

------解决方案--------------------
引用:

$] ls
str1  str2  str3
$] ls 
------解决方案--------------------
 grep "str1\
------解决方案--------------------
str2"
str1
str2

楼主的UNIX系统不支持这种写法