У меня есть строка, разделенная запятыми, в которой я хочу найти свои входные данные:
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, дайте ему список или что-то в этом роде, где он действительно может искать шаблоны, вместо того, чтобы искать их в «США».