У меня есть строка, разделенная запятыми, где я хочу найти свой ввод в этой строке:
echo US | grep "US,CA,CH,JP"
Выход пуст! Как мне использовать grep, чтобы найти свой ввод в этой строке?
Поменяйте местами аргументы команд:
echo "US,CA,CH,JP" | grep US
В:
echo US | grep "US,CA,CH,JP"
Вы ищете строку (образец) US,CA,CH,JP
во входной строке US
, которая не соответствует ожидаемому.
Если вы не ожидали, что запятые будут действовать как оператор "или", в этом случае вам просто нужно заменить запятые на каналы и использовать -E
опцию для расширенных регулярных выражений:
echo US | grep -E "US|CA|CH|JP"
Или измените запятые на символы новой строки:
echo US | grep "US
CA
CH
JP"
я хотел бы использовать $echo US | grep -i "US|CA|JP|CH"
Вместо эко дайте ему список или что-то, куда он может пойти и искать шаблоны, вместо того, чтобы искать их в «США»
-E
.