Возвратите только номер строки, если шаблон 'Существует', и 'Не Существуют'. использование 'grep' команда

У меня есть этот файл примера для моего входа:

xyxxyx xyxx xxyx yxyy yxyx
xxyxxx xx xyx xxx x y x xxyy
yxxy xyxxy xxy y x y
xyxy xyx yyxx xyyxyxy xyx
yxyy xyy yxyx xxyxyyx

И я пытался найти только "xyx" слово, если существуют в числе возвратной линии и строке. например, в этом входе просто строка 2 и 4 имеют "xyx", и результат, которого я требовал, только был бы 2 и 4 (номера строки), но grep команда дает мне все 5 строк. этот результат:

grep -n "xyx" test | cut -f1 -d:
1
2
3
4
5

Если я работаю, следуют за командой без cut -f1 -d" Я вижу, что находят все "xyx" такой как в "xyxxyx", "xyxx", "xxyx" и "yxyx" например, в первой строке, в то время как это неправильно, мой шаблон только и только существует в строке 2 и 4 и это - третье слово в строке 2 и второе и 5-е слово в строке 4. См. снимок экрана:

                          enter image description here

И результат, что я хочу, только найдите разделенными "xyx" и количество возвратной линии этого.

вывод я требовал, если шаблон существует, это справедливо:

2
4

вывод я требовал, если шаблон не существует, это справедливо:

1
3
5

и также я не знаю, какую команду я должен использовать для проверки, если шаблон не существует. Я попробовал всей возможной комбинацией grep команда, но я перестал работать.

Спасибо за помощь заранее.

1
задан 5 September 2014 в 00:42

1 ответ

Необходимо добавить -w опция

$ grep -wn 'xyx' file | cut -d: -f1
2
4

От man grep

   -w, --word-regexp
          Select  only  those  lines  containing  matches  that form whole
          words.  The test is that the matching substring must  either  be
          at  the  beginning  of  the  line,  or  preceded  by  a non-word
          constituent character.  Similarly, it must be either at the  end
          of  the  line  or  followed by a non-word constituent character.
          Word-constituent  characters  are  letters,  digits,   and   the
          underscore.

, Чтобы инвертировать соответствие, добавить эти -v переключатель т.е.

grep -vwn 'xyx' file | cut -d: -f1
2
ответ дан 11 November 2019 в 09:33

Другие вопросы по тегам:

Похожие вопросы: