Girişimi grep kullanarak dizede bulamıyorum


11

Ben bu satırda benim giriş bulmak istiyorum virgül ile ayrılmış bir dize var:

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

Çıktı boş! Bu dizede girdilerimi bulmak için grep'i nasıl kullanmalıyım?

Yanıtlar:


18

Komutların argümanlarını değiştirin:

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

İçinde:

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

US,CA,CH,JPgiriş dizgisinde USbeklenen dizeyle uyuşmayan dizeyi (desen) arıyorsunuz .


14

Virgüllerin "veya" ifadesi gibi davranmasını beklemiyorsanız, bu durumda virgülleri dikey olarak değiştirmeniz ve Genişletilmiş düzenli ifadeler -Eseçeneğini kullanmanız yeterlidir :

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

Veya virgülle yeni satır karakterlerini değiştirin:

echo US | grep "US
CA
CH
JP"

-1

Kullanmak istiyorum $echo US | grep -i "US|CA|JP|CH"

Eko yerine bu listeye "ABD" de aramak yerine, aslında gidip kalıp arayabileceği bir liste falan verin


Unuttun -E.
reinierpost
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.