아래와 같이 두 개의 파일이 있습니다.
- 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