teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

コメントの解を導入

2020/07/15 14:54

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -4,8 +4,9 @@
4
4
  number=1
5
5
  string="abc"
6
6
 
7
- # json=$(eval echo $(sed -e 's/\"/\\"/g' test.json)) # 1行になる
7
+ # json=$(eval echo $(sed -e 's/\"/\\"/g' test.json)) # 1行になる別解
8
+ json=$(eval echo "\"$(sed -e 's/\"/\\"/g' test.json)\"") # コメントによる解
8
- json=$(eval "cat <<< \"$(sed -e 's/\"/\\"/g' test.json)\"") # 複数行まま
9
+ # json=$(eval "cat <<< \"$(sed -e 's/\"/\\"/g' test.json)\"") # もうひとつ別解
9
10
 
10
11
  echo "$json"
11
12
  ```

2

実行結果を追加

2020/07/15 14:54

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -8,4 +8,11 @@
8
8
  json=$(eval "cat <<< \"$(sed -e 's/\"/\\"/g' test.json)\"") # 複数行のまま
9
9
 
10
10
  echo "$json"
11
+ ```
12
+ ```
13
+ $ bash jsontest.sh
14
+ {
15
+ "number": 1,
16
+ "string": "abc"
17
+ }
11
18
  ```

1

説明を修正

2020/07/15 14:31

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -4,8 +4,8 @@
4
4
  number=1
5
5
  string="abc"
6
6
 
7
- # json=$(eval echo $(sed -e 's/\"/\\"/g' test.dat)) # 1行になる
7
+ # json=$(eval echo $(sed -e 's/\"/\\"/g' test.json)) # 1行になる
8
- json=$(eval "cat <<< \"$(sed -e 's/\"/\\"/g' test.dat)\"") # 複数行のまま
8
+ json=$(eval "cat <<< \"$(sed -e 's/\"/\\"/g' test.json)\"") # 複数行のまま
9
9
 
10
10
  echo "$json"
11
11
  ```