Это пример сценария оболочки, который я пытаюсь запустить, но вместо вывода результата grep он печатает всю строку. Разве нельзя транслировать, когда в $()
?
i="the cat is a crazy"; word=$( echo $i | grep cat); echo $word;
Это пример сценария оболочки, который я пытаюсь запустить, но вместо вывода результата grep он печатает всю строку. Разве нельзя транслировать, когда в $()
?
i="the cat is a crazy"; word=$( echo $i | grep cat); echo $word;
Ты только что побежал
$ echo $i | grep cat
> the cat is a crazy
Grep print lines matching a pattern
Вы хотите использовать -
-o, --only-matching
Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.
$ i="the cat is a crazy"; word=$( echo $i | grep -o cat ); echo $word;
> cat
Вы хотите, чтобы grep -o
только одно слово из строки. По умолчанию grep
выводит всю строку, где найдено совпадение.