파이프로 구분 된 두 파일 사이의 첫 번째 열을 비교해야하는 요구 사항이 있으며 일치하는 경우 파일 1의 세 번째 열을 파일 2의 네 번째 열로 바꿔야합니다.
파일 1 :
111|xyz|23345
222|abc|123
333|xyz|45667
444|xyz|5432
555|xyz|8976
파일 2 :
111|xyz|344|rtms
222|abc|222|xyzw
666|xyz|ggg|abde
888|xyz|ff|nnnn
333|xyz|dd|abde
444|xyz|vv|nnnn
555|xyz|bbb|uuyytt
결과물 파일:
111|xyz|rtms
222|abc|xyzw
333|xyz|abde
444|xyz|nnnn
555|xyz|uuyytt
awk
임시 파일 이 필요없는 한 줄짜리 :
join -t '|' -j1 -o 1.1 1.2 2.4 <(sort -t'|' -k1,1 file1) <(sort -t '|' -k1,1 file2)
join
및 모두 사용 awk
:
먼저 첫 file2
번째 필드를 기준으로 정렬 하고 저장합니다.file2.sort
sort -k 1 file2 > file2.sort
이제 "|"사용 구분 기호로 join file1
및 file2.sort
. 그런 다음 다시 "|"사용 구분 기호로를 사용하여 필요한 열을 추출하십시오 awk
.
join -t '|' file1 file2.sort | awk -F "|" ' {print $1"|"$2"|"$6}'
출력은 다음과 같습니다.
ron@ron:~$ join -t '|' file1 file2.sort | awk -F "|" ' {print $1"|"$2"|"$6}'
111|xyz|rtms
222|abc|xyzw
333|xyz|abde
444|xyz|nnnn
555|xyz|uuyytt
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다