Mam ciąg oddzielony przecinkami, w których chcę znaleźć dane wejściowe w tym wierszu:
echo US | grep "US,CA,CH,JP"
Wyjście jest puste! Jak powinienem użyć grep, aby znaleźć moje dane wejściowe w tym ciągu?
Zamień argumenty poleceń:
echo "US,CA,CH,JP" | grep US
W:
echo US | grep "US,CA,CH,JP"
szukasz ciągu (wzorca) US,CA,CH,JP
w ciągu wejściowym US
, który nie jest zgodny z oczekiwaniami.
O ile nie spodziewałeś się, że przecinki będą działać jak instrukcja „lub”, w takim przypadku wystarczy zmienić przecinki na potoki i użyć -E
opcji dla Rozszerzonych wyrażeń regularnych:
echo US | grep -E "US|CA|CH|JP"
Lub zmień przecinki na znaki nowej linii:
echo US | grep "US
CA
CH
JP"
użyłbym $echo US | grep -i "US|CA|JP|CH"
Zamiast eko daj mu listę lub coś, gdzie może faktycznie szukać wzorów, zamiast szukać ich w „US”
-E
.