次のテキストを置き換える必要があります。
"name":["abc1234"], age:"24"
と
"name": "abc1234", age: "24"
私が正しく理解している場合は、「名前」リストを最初の要素に置き換えてください。この場合は、Jsonプロセッサを試してください。
jq '.name=.name[0]' ex.json
(未投稿の完全な例への適応が必要になる場合があります)
一般的な答えは
man 7 regex
しかし、具体的には
sed -E 's/"name":\["abc1234"\], age:"24" /"name": "abc1234", age:"24"/g' file > new
または
sed -E 's/"name" *: *\["([^"]+)"\], *age *: *"([0-9]+)"/"name": "\1", age:"\2"/g' file > new
grep -E '"name" *: *\[' new
別のオプションは Python JSON module を this SO answer のように使用することです。ここに簡単な例を示します:
in.json
{ "name":["abc1234"], "age":"24" }
replaceInJson.py
#!/usr/bin/python3
import json
with open("in.json", "r") as f:
data = json.load(f)
print("Before:", data)
data["name"] = data["name"][0]
print("After: ", data)
出力
Before: {'name': ['abc1234'], 'age': '24'}
After: {'name': 'abc1234', 'age': '24'}