2012-02-20 174 views
-1

我需要Unix搜索命令,它用于查找某一行中的特定单词,该行不应包含特定单词。Unix搜索命令

For eg, 

Line 1: Java is my World. 
Line 2: Java is OOPs language. 

我需要unix命令返回行中包含“Java”而不是“世界”在该行。

Expected Output: 

Java is OOPs language. 

感谢, 斯里尼瓦桑R.

回答

1

使用grep:

cat <File> | grep 'Java' | grep -v 'World' 

-v选项反转选择(即行不包含模式)

你也可以用它做awk并将两个条件放在一起:

cat <File> | awk '/Java/ && !/World/' 
+0

是否可以对“更多”命令使用相同的搜索模式? – Srinivasan 2012-02-20 10:59:37

+0

我不明白你的问题。你可以尝试解释一下吗? – ArjunShankar 2012-02-20 11:01:38

+0

是否可以使用“more”命令过滤某个字词? – Srinivasan 2012-02-20 11:03:21

1

首先,列出所有有字“Java”作为其中的文件,然后反向匹配“世界”,即选择那些没有“世界”在他们这些行:

cat file | grep 'Java' | grep --invert-match 'World' 
1

命令特定字

的grep -R目录名

的grep -R目录名>文件名(追加输出)

找到在一条线上的特定词和还搜索文件名,其中该字是否存在。