bash에서 정규 표현식을 사용하여 Linux 'diff'를 작동시키는 방법

bash에서 정규 표현식을 사용하여 Linux 'diff'를 작동시키는 방법

PID(12345) PID(01234) 각각 Expect.out과 Actual.out이라는 두 개의 파일이 있습니다 .

숫자가 5개만 다른 경우 diff가 해당 줄을 무시하도록 하여 diff가 빈 값을 반환하도록 합니다. 아이디어는 서로 다른 PID를 가지고 있지만 그 외에는 동일한 로그를 diff가 무시하도록 하는 것입니다.

다음은 작동하지 않습니다:

diff -I '\([0-9]{5}\)' -I '\([0-9]{5}\)' expected.out actual.out

답변1

^줄의 시작과 끝과 일치 $하고 문자열과 일치합니다 PID(원하지 않으며 FOO(12345)무시 BAR(12345)됩니다).

diff -I '^PID([0-9]\{5\})$' expected.out actual.out

각 PID에 5자리 숫자가 있다고 가정하는 것보다 하나 이상의 숫자를 일치시키는 것이 더 안전합니다.

diff -I '^PID([0-9]\+)$' expected.out actual.out

관련 정보