파일 비교

파일 비교

두 개의 파일이 있습니다. FILE1에는 많은 줄이 포함되어 있고 FILE2에는 KEY VALUE 매개 변수가 포함되어 있습니다. FILE2를 FILE1과 비교해야 하며 일치하는 항목이 있으면 FILE1의 해당 단어를 FILE2의 다음 열로 바꿔야 합니다.

예:

파일 1:

<SOME YAML CODE
-------------->
PARM1
PARM2
PARM3
PARM4
<END OF YAML CODE
---------------->

파일 2:

PARM1 mmddyy
PARM2 hhmmss
PARM3 awsid
PARM4 cc

따라서 FILE2의 FILE1에서 일치하는 각 항목에 대해 FILE1의 해당 단어는 FILE2의 두 번째 열로 대체되어야 합니다. 따라서 원하는 출력은 다음과 같아야 합니다.

<SOME YAML CODE
-------------->
mmddyy
hhmmss
awsid
cc
<END OF YAML CODE
---------------->

제한된 sed를 사용해 보았지만 예상한 결과를 얻지 못했습니다.

귀하의 시간과 지원에 감사드립니다

답변1

당신은 그것을 사용할 수 있습니다 awk:

awk '
    NR==FNR{k[$1]=$2;}
    NR!=FNR{if($1 in k){$0=k[$1]};print}
' file2 file1

에서 필드 배열을 저장하고 file2, 발견된 경우 file1row( $0)를 해당 배열의 내용으로 바꿉니다.

관련 정보