【问题标题】:sed cut grep linux command outputsed cut grep linux 命令输出
【发布时间】:2021-03-29 14:20:42
【问题描述】:

我有一个字符串,我想从匹配中删除所有匹配项,直到第一个逗号:示例

[{"value":1,"btata":"15","Id":"17","","url":"","time":"222"{"value":1,"secId":"16","Id":"19","time":"20218 22status":""}

我想得到 Id:17 Id:19

我已经能够使用 sed -e 's/Id/_/g' -e 's/[^_]//g' -e 's/_/Id /g' 获取 Id,但直到逗号才能匹配。

【问题讨论】:

标签: awk sed split grep cut


【解决方案1】:

您可以使用sed 来实现,但它需要两个表达式。本质上,您需要删除所有'"' 字符,然后将',' 上的输入拆分为'\n'。第二个表达式只是定位以Id 开头的行,例如

sed 's/"//g;s/,/\n/g' | sed -n /^Id/p

使用/输出示例

$ echo '[{value:1,btata:15,Id:17,,url:,time:222{value:1,secId:16,Id:19,time:20218 22status:}' | 
sed 's/"//g;s/,/\n/g' | sed -n /^Id/p
Id:17
Id:19

(注意:这一切都带有一个警告,你不应该使用 shell 命令处理 json。建议使用像 jq 这样的 json 验证工具——尽管这似乎不是有效的json)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-17
    • 2021-07-28
    • 2022-12-12
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 2013-02-05
    • 2013-11-21
    相关资源
    最近更新 更多