두 파일을 열별로 병합하고 항목이 누락되면 0을 추가합니다.

두 파일을 열별로 병합하고 항목이 누락되면 0을 추가합니다.

아래와 같이 두 개의 파일이 있습니다.

  • File1 File1에는 5개의 국가가 있습니다.

    >USA
    >England
    >France
    >Japan
    >Thailand

  • File2 File2에는 4개만 있습니다.

    >USA
    >England
    >Japan
    >Thailand

paste -d "," file1.txt file2.txt1두 개의 파일을 병합하는 데 사용합니다

  • 산출

    >USA ,>USA
    >England,>England
    >France,>Japan
    >Japan,>Thailand
    >Thailand,

여기서 볼 수 있듯이 File2 -France에 누락된 값이 있기 때문에 두 출력 파일의 목록 순서가 서로 일치하지 않습니다. 대신 "프랑스" 이후에는 바뀌었습니다.

-욕구 출력


    >USA       >USA
    >England   >England
    >France    >0 (or any symbols)
    >Japan     >Japan
    >Thailand  >Thailand 

     

두 파일을 병합하고 누락된 값을 0으로 바꾸지만 나머지 순서는 일치하도록 유지하는 UNIX 명령문을 어떻게 작성할 수 있습니까? 추가, 변경, 수정해야 할 사항paste -d "," file1.txt file2.txt1

어떤 도움이라도 대단히 감사하겠습니다. 감사해요.

답변1

"모든 기호"는 괜찮다고 했으므로 diff만으로 충분할 수 있습니다.

diff -w -y file1 fiel2

    >USA                                >USA
    >England                            >England
    >France                           <
    >Japan                              >Japan
    >Thailand                           >Thailand

누락된 줄은 >또는 으로 표시되며 <각각 file2 또는 1에 나타납니다. -w비교 중에 공백은 무시됩니다.

답변2

사용 awk:

awk 'NR==FNR{a[$1]=$1;next}
{if ($1 in a) print a[$1],$1; else print $1 ,">0"}' file2 file1

관련 정보