如何从JSON输出文件中删除这些特殊字符

时间:2018-10-03 16:28:22

标签: linux shell

^ [[0; 32m?〜V? ^ [[0m

JSON文件正在由Shell脚本编写。

因此,文本处理会生成这些特殊字符,可以使用dos2unix进行尝试,也可以使用%s选项在全局范围内更改字符。

1 个答案:

答案 0 :(得分:0)

检查一下。我在示例JSON文件中引入了一些控制字符,可以使用“ cat -v”命令显示这些控制字符。带有^ B,^ A,^ D的字符是控制字符。 使用perl可以完全删除控制字符。您可以重定向到新文件

> cat -v json_control.txt

^B{"menu": {
  "id": "file",
  "value": "File",
  "popup": ^B{
    "menuitem": [
      {"value": "New", "onclick": "CreateNewDoc()"},
      {"value": "Open", "onclick": "OpenDoc()"},
      {"value": "Close", "onclick": "CloseDoc()"}
    ]
  }
}}^D
^A


>  perl -pe ' { s/[\x00-\x09\x0B-\x1F]//g } ' json_control.txt | cat -v

{"menu": {
  "id": "file",
  "value": "File",
  "popup": {
    "menuitem": [
      {"value": "New", "onclick": "CreateNewDoc()"},
      {"value": "Open", "onclick": "OpenDoc()"},
      {"value": "Close", "onclick": "CloseDoc()"}
    ]
  }
}}

>