정확한 문자열 일치는 grep 2.6.3에서는 작동하지만 grep 3.0에서는 작동하지 않습니다.

정확한 문자열 일치는 grep 2.6.3에서는 작동하지만 grep 3.0에서는 작동하지 않습니다.

Cygwin을 사용하는 Windows 시스템에 문제가 있습니다.
내 컴퓨터 중 하나에서 grep은 다음을 사용하여 정확한 문자열 일치를 위해 작동합니다 $.

$ ipconfig /all | grep -A 1 'My Ethernet Server Adapter B52-2$'
   Description . . . . . . . . . . . : My Ethernet Server Adapter B52-2
   Physical Address. . . . . . . . . : ##-##-##-##-##

이 기계의 버전은 다음 grep과 같습니다.

$ grep -V
GNU grep 2.6.3

그러나 이것은 다른 컴퓨터에서는 작동하지 않습니다 grep 3.0.

$ ipconfig /all | grep -A 1 'My Ethernet Server Adapter B52-2$'

grep기본 버전:

$ grep -V
grep (GNU grep) 3.0

위 명령에서 제거 하면 $결과를 얻지만 정확한 문자열 일치를 원합니다.
누구든지 나를 도와줄 수 있나요?

미리 감사드립니다! !

편집: 이것을 시도했지만 예상한 답변을 얻을 수 없습니다 grep -w.grep -o

답변1

Mikael과 Kusalananda에게 감사드립니다.
예상되는 결과를 얻었습니다.

ipconfig /all | sed -e 's/[[:space:]]*$//' | grep -A 1 'My Ethernet Server Adapter B52-2$'

또는

ipconfig /all | sed -e 's/\s*$//' | grep -A 1 'My Ethernet Server Adapter B52-2$'

출력 에 후행 공백이 있어 ipconfig /all일치 항목이 작동하지 않습니다. sed이제 정확한 문자열을 찾을 수 있도록 공백이 제거됩니다.
감사해요!

관련 정보