셸 스크립트 - 두 개의 파일 소스 파일과 대상 파일, 셸 스크립트는 다음 작업을 수행해야 합니다.

셸 스크립트 - 두 개의 파일 소스 파일과 대상 파일, 셸 스크립트는 다음 작업을 수행해야 합니다.

쉘 스크립트를 작성할 때 질문이 있습니다.

예를 들어 두 개의 파일이 있습니다

  1. file1.txt

    Name=myname
    Country=mycounty
    .
    .
    .
    

    약 100줄 정도 있어요

  2. file2.txt

    Name=othername
    Country=anothercountry
    Occupation=my_occupation
    .
    .
    .
    

내 문제는 두 개의 파일이 있다는 것입니다. file1.txt하나는 대상 파일이고 다른 하나 file2.txt는 소스 파일입니다. 대상 파일의 입력을 대상 파일에서 찾아서 바꿔야 합니다. 일치하지 않으면 추가하세요.

sed2~3개의 행을 편집하려면 를 사용할 수 있습니다. 20줄을 편집하고 싶다고 가정해 봅시다. 그것은 매우 어렵습니다.

이 문제를 해결하도록 도와주세요

답변1

awk값이 포함되지 않는다고 가정하고 이것을 사용하겠습니다 .=

awk -F'=' '
    { h[$1]=$2 }                                          # Save the key/value
    END { for (k in h) { printf "%s=%s\n", k, h[k] } }    # Output all key/value pairs
' file2.txt file1.txt

하지만 당신은 사용할 수 있습니다sort

sort -t'=' -u -k1,1 file2.txt file1.txt    # Sort by first field discarding duplicates

출력(둘 중 하나)

Country=mycounty
Name=myname
Occupation=my_occupation

관련 정보