使用sed在单词的特定位置添加双qoutation

时间:2019-04-03 17:58:32

标签: regex sed

我正在尝试清理单词:

Words
1 The
2 is
3 apple
4 grape 
....so on

number_words = [0]*len(words) for i in range(len(words)): for j in range(len(tweets)): if words[i] in tweets[j]: number_words[i] += 1 number_words 之后的所有单词都用双引号引起来,如下所示:

{"id":1, "name":Robert}, {"id":2, "name":"Skylar"}, {"id":3, "name":"Ben"}, {"id":4, "name":Anne}

我如何使用sed清理它?

谢谢

2 个答案:

答案 0 :(得分:2)

sed 's/\("name":\)\([A-Za-z]\+\)/\1"\2"/g' file
  • \("name":\)(ERE:("name":))与"name":匹配,并将其放置在捕获组1中,
  • \([A-Za-z]\+\)(ERE:([A-Za-z]+))匹配一组由字母A到Z和a到z的字符并将其放入捕获组2,
  • \1\2扩展到捕获组的内容。

答案 1 :(得分:0)

如果您的数据位于d文件中,请尝试使用gnu sed:

sed -E 's/("name":\s*)"?([^"}]+)"?\s*\}/\1"\2"\}/g' d