두 파일의 차이점을 어떻게 출력합니까?


11

내 파일은 다음으로 구성됩니다. 대충:

username:username:username:username:username 

위의 줄은 약 600 자입니다.

내가 사용하는 awk명령 줄에서 보낸 API / HTTP 요청에서 인수로 사용하기 위해 명령을 사용합니다.

스크립트를 사용하여 ' 팔로우 '하는 사용자 계정 목록을 가져오고 24 시간마다 하드 디스크의 원래 목록을 새로 출력 된 사용자 이름 목록과 비교하고 더 이상 팔로우하지 않는 사람을 에코합니다 나 . 나는 각 사용자 이름을 테스트 .. Bash를 이용한 루프에 내 로직을 캡슐화해야합니다.

내 현재 스크립트 :

user=$(awk -F: '{ print $1 }' FILE)  # Grab $User to use as an argument.  
following=$(exec CURRENT_FOLLOWERS) # Outputs the new file

echo "X amount of users are following you on 78B066B87AF16A412556458AC85EFEF66155"  

          SAVE CURRENT FOLLOWERS TO NEW A FILE.  


if [[ DIFFERENCE IS DETECTED ]] ; then    

          echo -ne "$User NO LONGER FOLLOWING YOU\r"

   else echo -ne "This user is following you still.\r"
fi

내 질문은;
두 파일의 차이점을 어떻게 출력합니까?


에 대해 알고 diff있습니까?
schaiba

@schaiba 감사합니다. 다른 포럼에서 그 문제를 발견하고 훌륭하게 작동했습니다. 나는 그 전에 그것을 우연히 발견하지 않았습니다. 이 답변이 다른 회원의 향후 쿼리에 유용하기를 바랍니다.
Ben

@ schaiba가 대답 할 수도 있습니다. 필드가 아닌 라인에서 작동하는 diff를 다루어야 합니다.
terdon

답변:



13

분류되지 않은 사용자 목록을 포함하는 두 개의 파일이 있습니다 (예 :

In file1:
    userD
    user3
    userA
    user1
    userB

In file2:
    user3
    userB
    userX
    user1

다음의 사용자의 간단한 목록을 얻을 수 file1있지만에서를 file2, 당신은 할 수있다

$ comm -23 <(sort file1) <(sort file2)
userA
userD

마찬가지로 사용자를 데려 file2오지만file1

$ comm -13 <(sort file1) <(sort file2)
userX

목록 파일이 이미 정렬되어있는 경우, 이들에 간단하게 할 수 comm -23 file1 file2comm -13 file1 file2각각.


1
comm정렬하지 않고 사용할 수 있습니까? 내 텍스트 파일이 값 좋아 1, 2, 01, 02, 0000, 0001, 0002, 등을 사용 sort해제 정렬합니다 순서를 ...
Lanti


3

diff [options] from-file to-file

diff 파일과 파일의 두 파일 내용을 비교합니다. -i . 경우에 따라 변경 사항을 무시 옵션을 . 대문자와 소문자를 동등한 것으로 간주하십시오.

자세한 내용은 다음 링크를 참조하십시오 : http://www.computerhope.com/unix/udiff.htm 또는 매뉴얼 페이지를 참조하십시오.


2

fcUnix 및 Linux의 diff <file_new> <file_old>명령 과 같은 동일한 창을 시도 할 수 있습니다 .

그들 앞에 +++또는 ---앞에 선 이 바뀌었고+'s-'s바뀌지 않은 줄

라인 -부호가있는 은 새 파일에서 제거되지만 이전 버전에는 존재했습니다.

+부호가있는 줄 은 새 파일에서 추가되지만 이전 버전의 파일에는 없었습니다.

리눅스 표기법

리눅스 용도 ><

>이전 파일 <의 줄을 의미합니다. 이전 파일에서 변경된 새 파일의 줄을 의미합니다.


0

동일한 파일의 두 개, 세 개 또는 네 가지 버전의 차이점을 표시하려면 vimdiff 로 이동 하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.