regex - 如何使用 Bash 从 JSON 字符串中删除\n 和\r?

标签 regex bash

我一直在尝试使用 this answer 从我的 JSON 输出中删除新行和回车符指示符| .

我也尝试根据我在 Stack Overflow 上看到的另一个答案来运行它,但它似乎仍然不起作用:

 sed -E ':a;N;$!ba;s/\r{0,1}\n/\\n/g' text.json > text_clean.json

我当前的 .sh 脚本如下所示:

getPage() {
curl --fail -X GET 'https://api.test.com/v1/marx?page=1&pageSize=1000&sort=desc' \
  -H 'Authorization: Bearer xxxxxxx' \
  -H 'cache-control: no-cache'  
}

getPage \
| jq -c '.data[]' \
  > text.json

我在这里错过了什么?

如果有帮助,包含它的字符串的示例在输出中采用许多不同的形式,但这里有一个很好的形式:

好的!非常感谢。\r\n最好的,\r\nClaire\r\n\r\n

最佳答案

如果要修改 JSON,请在 jq 中执行。

在这种情况下,这可能意味着改变:

getPage \
| jq -c '.data[]' \
> text.json

...到...

getPage \
| jq -c '.data[] | sub("\r\n"; " ") | sub("\n"; " ")' \
> text.json

关于regex - 如何使用 Bash 从 JSON 字符串中删除\n 和\r?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54798272/

相关文章:

正则表达式密码验证,或运算

linux - 从 cvs 中删除具有特定模式的文件

PHP JSON 函数在被称为 CLI 脚本时不可用?

arrays - 最佳实践 : Print an array in a bash script

Linux Bash 文件读取行和单词

bash - 如何在子 shell 中执行别名命令

java - 需要 Java 正则表达式 (regexp) 来拆分复杂的 CSV 文件

php - 如何使用 preg_replace 将字符串转换为小写

arrays - 为什么我不能在 ruby​​ 中的数组上使用 Match 方法?

python - 正则表达式选择 HTML 标签内的特定字符