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

해당 줄에서 입력을 찾으려면 쉼표로 구분 된 문자열이 있습니다.

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

출력이 비어 있습니다! grep을 사용하여 해당 문자열에서 입력을 찾으려면 어떻게해야합니까?



답변

명령의 인수를 교체하십시오.

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

에:

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

US,CA,CH,JP입력 문자열에서 문자열 (패턴) 을 찾고 US있는데 이는 예상과 일치하지 않습니다.


답변

쉼표가 “또는”명령문처럼 작동 할 것으로 예상하지 않는 경우 쉼표를 파이프로 변경하고 확장 정규식 -E옵션을 사용해야합니다 .

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

또는 쉼표를 개행 문자로 변경하십시오.

echo US | grep "US
CA
CH
JP"


답변

나는 사용할 것이다 $echo US | grep -i "US|CA|JP|CH"

에코 대신 “미국”에서 패턴을 찾는 대신 실제로 패턴을 찾을 수있는 목록이나 무언가를 제공하십시오.


답변