Tidak dapat menemukan input saya di string menggunakan grep


11

Saya memiliki string yang dipisahkan dengan koma di mana saya ingin menemukan input saya di baris itu:

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

Outputnya kosong! Bagaimana saya harus menggunakan grep untuk menemukan input saya di string itu?

Jawaban:


18

Tukar argumen perintah:

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

Di:

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

Anda mencari string (pola) US,CA,CH,JPdalam string input US, yang tidak sesuai dengan yang diharapkan.


14

Kecuali jika Anda mengharapkan koma untuk bertindak seperti pernyataan "atau", dalam hal ini Anda hanya perlu mengubah koma menjadi pipa dan menggunakan -Eopsi untuk ekspresi reguler yang diperluas :

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

Atau ubah koma ke karakter baris baru:

echo US | grep "US
CA
CH
JP"

-1

Saya akan menggunakan $echo US | grep -i "US|CA|JP|CH"

Alih-alih memberikannya daftar atau sesuatu yang ramah lingkungan, di mana ia sebenarnya bisa pergi dan mencari pola, bukannya mencari mereka di "AS"


Anda lupa -E.
reinierpost
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.