grep은 하나의 문자열과 일치하지만 다른 문자열과 일치합니다.

grep은 하나의 문자열과 일치하지만 다른 문자열과 일치합니다.

(브랜치를 만드는 대신) svn grn에서 변경된 파일을 가져와야 합니다. 이를 위해 나는 이것을 시도하고 있습니다 :

사례 1:

echo "   M /branches/Integration_release_23_branch/build/scripts/include/test.h" | \
grep -E "   . /[trunk/,branches].*[^from\ ]"

이는 일치해야 하며 작동 중입니다.

사례 2:

echo "   A /branches/Integration_release_23_branch (from /branches/Integration_release_22_branch:34500)" |  grep -E "   . /[trunk/,branches].*[^from\ ]"

(from일치하지 않아야 합니다. ( 또는 마지막에 확인해야 함 ))

예외 문자열이 제대로 작동하지 않습니다.

답변1

다음 입력 파일이 주어지면:

$ cat ip.txt 
   M /branches/Integration_release_23_branch/build/scripts/include/test.h
   A /branches/Integration_release_23_branch (from /branches/Integration_release_22_branch:34500)
   dummy line 1
   M /trunk/Integration_release_23_branch/build/scripts/include/test.h
   dummy line 2
   A /trunk/Integration_release_23_branch (from /branches/Integration_release_22_branch:34500)

|이 패턴이나 저 패턴을 검색 하는 데 사용됩니다.

$ grep -E 'trunk|branches' ip.txt 
   M /branches/Integration_release_23_branch/build/scripts/include/test.h
   A /branches/Integration_release_23_branch (from /branches/Integration_release_22_branch:34500)
   M /trunk/Integration_release_23_branch/build/scripts/include/test.h
   A /trunk/Integration_release_23_branch (from /branches/Integration_release_22_branch:34500)

제외 옵션을 사용하여 결과를 다른 grep명령 으로 보낼 수 있습니다.from-v

$ grep -E 'trunk|branches' ip.txt | grep -v 'from '
   M /branches/Integration_release_23_branch/build/scripts/include/test.h
   M /trunk/Integration_release_23_branch/build/scripts/include/test.h

관련 정보