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