2012-02-20 4 views
-1

Мне нужна команда поиска 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.

ответ

1

Использование Grep:

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

Опция -v инвертирует выбора (то есть строки, не содержащие шаблон)

Вы также могли бы сделать это с awk и дать оба условия вместе:

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

Можно ли использовать тот же шаблон поиска для команды «больше»? – Srinivasan

+0

Я не понял ваш вопрос. Не могли бы вы объяснить это? – ArjunShankar

+0

Можно ли фильтровать somord с помощью команды «больше»? – Srinivasan

1

Во-первых, перечислить все файлы, которые имеют слово «Java» в них, а затем обратно матч «Мир», то есть выбрать те строки, которые не имеют «Мир» в них:

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

Команда для конкретных слово

Grep -R имя_директории

Grep -R имя_директории> имя файла (для добавления вывода)

, чтобы найти конкретное слово в строке поиска, а также имя файла, в котором это слово присутствует.

Смежные вопросы