Не удается найти свой ввод в строке с помощью grep

используйте больше пробелов вокруг [ и ]

11
15.10.2016, 02:21
3 ответа

Поменяйте местами аргументы команд:

echo "US,CA,CH,JP" | grep US

В:

echo US | grep "US,CA,CH,JP"

вы ищете строку (шаблон) US, CA, CH , JP во входной строке US , что не соответствует ожидаемому.

18
27.01.2020, 19:57

Я бы использовал $echo US | grep -i "US|CA|JP|CH"

Вместо eco дайте ему список или что-то вроде того, где он действительно может искать шаблоны, вместо того, чтобы искать их в "US"

-1
27.01.2020, 19:57

Если вы не ожидали, что запятые будут действовать как «или» оператор, и в этом случае вам просто нужно заменить запятые на каналы и использовать параметр -E для Расширенные регулярные выражения:

echo US | grep -E "US|CA|CH|JP"

Или замените запятые на символы новой строки:

echo US | grep "US
CA
CH
JP"
14
27.01.2020, 19:57

Теги

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