Unix搜索命令

时间:2012-02-20 10:55:40

标签: unix

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

For eg,

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

我需要unix命令,返回行包含“Java”而不是“World”。

Expected Output:

Java is OOPs language.

谢谢, Srinivasan R。

3 个答案:

答案 0 :(得分:1)

使用grep:

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

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

您也可以使用awk并将这两个条件放在一起:

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

答案 1 :(得分:1)

首先,列出所有包含“Java”字样的文件,然后反向匹配“World”,即选择那些没有“World”的行:

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

答案 2 :(得分:1)

特定单词的命令

grep -R dirname

grep -R dirname&gt; filename(附加输出)

找到一行中的特定单词,并搜索该单词所在的文件名。