grep을 사용하여 문자열에서 입력을 찾을 수 없습니다.

grep을 사용하여 문자열에서 입력을 찾을 수 없습니다.

쉼표로 구분된 문자열이 있는데 해당 줄에서 입력 내용을 찾고 싶습니다.

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,JPUS입력 string 에서 예상한 것과 일치하지 않는 문자열(패턴)을 찾고 있습니다 .

답변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가 목록 등을 제공하는 대신 실제로 패턴을 찾고 "미국"에서는 찾지 않을 수 있습니다.

관련 정보