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

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

У меня есть строка, разделенная запятыми, в которой я хочу найти свои входные данные:

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

Вывод пуст! Как мне использовать grep, чтобы найти мой ввод в этой строке?

решение1

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

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

В:

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

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

решение2

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

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

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

echo US | grep "US
CA
CH
JP"

решение3

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

Вместо того, чтобы eco, дайте ему список или что-то в этом роде, где он действительно может искать шаблоны, вместо того, чтобы искать их в «США».

Связанный контент