diff의 출력 파일에서 줄을 제거합니다.

diff의 출력 파일에서 줄을 제거합니다.

diff -c출력을 사용하고 텍스트 파일에 저장하는 스크립트가 있습니다 . 내가 원하는 것은 "!"가 없는 줄을 제거하고 느낌표가 있는 줄을 표시하는 것입니다. 가능합니까? 이 cut명령으로 문제가 해결됩니까?

diff -c디렉토리1에서 디렉토리2로 파일을 분리하기 때문에 이것을 사용하고 싶습니다 .

예:

*** 1,3 ****
! 3856715355 /home/dir
  4294967277 /home/dir/file1 <---remove this line
! 154272340 /home/dir/file5
--- 1,4 ----
! 1765342654 /home/dir
  4294967277 /home/dir/file1 <--- remove this line
! 803775803 /home/dir/file4
! 2580902204 /home/dir/file99

답변1

  • 그리고 grep:

    diff -c file1 file2 | grep '^[-!*]'`
    
  • 그리고 sed:

    diff -c file1 file2 | sed '/^[-!*]/!d'
    

답변2

grep을 사용하세요:

diff -c file1 file2 | grep -v '^  '

두 개의 공백으로 시작하는 다른 줄은 없습니다. 로 시작하는 줄 !이나 line 지시문이 아닙니다.

관련 정보