쉘 스크립트를 작성할 때 질문이 있습니다.
예를 들어 두 개의 파일이 있습니다
file1.txt
Name=myname Country=mycounty . . .
약 100줄 정도 있어요
file2.txt
Name=othername Country=anothercountry Occupation=my_occupation . . .
내 문제는 두 개의 파일이 있다는 것입니다. file1.txt
하나는 대상 파일이고 다른 하나 file2.txt
는 소스 파일입니다. 대상 파일의 입력을 대상 파일에서 찾아서 바꿔야 합니다. 일치하지 않으면 추가하세요.
sed
2~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