2012-02-20 154 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目錄名>文件名(追加輸出)

找到在一條線上的特定詞和還搜索文件名,其中該字是否存在。