シェルスクリプト - 2つのファイルソースファイルとターゲットファイル、シェルスクリプトは次の作業を実行する必要があります。

シェルスクリプト - 2つのファイルソースファイルとターゲットファイル、シェルスクリプトは次の作業を実行する必要があります。

シェルスクリプトを書くときに質問があります。

たとえば、2つのファイルがあります

  1. file1.txt

    Name=myname
    Country=mycounty
    .
    .
    .
    

    約100行ほどあります。

  2. file2.txt

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

私の問題は、2つのファイルがあるということです。file1.txt1つはターゲットファイル、もう1つ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

おすすめ記事