Spaces:
Running
Running
File size: 687 Bytes
7db5ce2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#!/bin/bash
DATA_JSON="./data.json"
escape_sed() {
# sedの置換で使う特殊文字(/ & \)をエスケープ
echo "$1" | sed -e 's/[\/&\\]/\\&/g'
}
jq -r 'keys[]' "$DATA_JSON" | while read -r file; do
if [ ! -f "$file" ]; then
echo "ファイルが存在しません: $file" >&2
continue
fi
jq -r --arg file "$file" '
.[$file] | to_entries[] | "\(.key)\t\(.value[0])"
' "$DATA_JSON" | while IFS=$'\t' read -r orig replace; do
orig_escaped=$(escape_sed "$orig")
replace_escaped=$(escape_sed "$replace")
# すべての一致を置換(-iはバックアップなし)
sed -i "s/${orig_escaped}/${replace_escaped}/g" "$file"
done
done
|