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


11

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

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

Вихід порожній! Як я повинен використовувати греп, щоб знайти свій внесок у цей рядок?

Відповіді:


18

Замініть аргументи команд:

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

В:

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

ви шукаєте рядок (шаблон) US,CA,CH,JPу вхідному рядку US, який не відповідає очікуваному.


14

Якщо ви не розраховували, що кома буде діяти як "або", у цьому випадку вам просто потрібно змінити коми на "pipe" і скористатися -Eопцією для Extended регулярних виразів:

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

Або змінити коми на символи нового рядка:

echo US | grep "US
CA
CH
JP"

-1

Я б користувався $echo US | grep -i "US|CA|JP|CH"

Замість еко дайте йому список або щось таке, куди він може насправді піти і шукати шаблони, замість того, щоб шукати їх у "США"


Ти забув -E.
reinierpost
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.