Bashスクリプト端末でのテキストの検索と置換

Bashスクリプト端末でのテキストの検索と置換

/home/count/1/details/info.txt次のファイルがあります

title1 {
key1 value1
key2 value2
key3 value3
}

info {
name1 text
post1 anything
salary 1
work day1
work day2
work day3
}

work {
department sell
store ground
remarks
}

contact {
required No
}

今私には必要です。変化上から:

title1 {
key1 value1
key2 value2
key3 value3
}

info {
name1 text
post1 anything
salary 1
work day1
work day2
work day3
work day4
work day5
work day8
}

work {
department sell
store ground
remarks
Absent No
}

contact {
required No
}

work day4、、、work day5情報グループに3つの新しい値が追加されましたwork day8。ワークグループは新しい値、つまりを取得しますAbsent

タイトル(例:title1、情報、作品)は固定されており、変更することはできません。ただし、{}の間の値は動的に可変であり、任意の値にすることができます。ただし、コア操作は固定されており、追加または削除のみ可能で、変更は不可能です。

これを行うには、bashファイルを作成する必要がありました。最小バージョンのubuntu 20.04サーバーでのみ端末を使用できます。

アイデア、提案、助けがありますか?

ありがとう

ベストアンサー1

そしてperl

perl -0777 -pi -e '
  s{^info\s*\{.*?\K(?=\})}{join "", map {"work day$_\n"} 4,5,8}mse;
  s{^work\s*\{.*?\K(?=\})}{Absent No\n}ms' /home/count/1/details/info.txt

おすすめ記事