从字符串中删除子字符串

问题描述 投票:0回答:3

我想从 jq 中的字符串中删除

,
。下面举个例子,输出
,
时如何去掉
1,2

$ jq -r .x <<< '{"x":"1,2"}'
1,2
jq
3个回答
1
投票

你没有说清楚你想要什么输出。从字面上看,您可能需要

12
,但我发现您更有可能希望每个以逗号分隔的项目在单独的行上输出。以下实现了这一点:

jq -r '.x | split(",")[]'

对于提供的输入,输出

1
2
jqplay 上

演示


1
投票

您可以使用

sub

过滤器

.x | sub(","; " ")

输入

{"x":"1,2"}

输出

1 2

演示

https://jqplay.org/s/IaViogZTsI


1
投票

要从字符串中删除特定位置,请使用要保留的索引:

jq -r '.x | .[:1] + .[2:]' <<< '{"x":"1,2"}'
12

演示

要删除任意位置的一个出现,请使用

sub
替换为空字符串

jq -r '.x | sub(","; "")' <<< '{"x":"1,2,3"}'
12,3

演示

要删除所有出现的情况,请以同样的方式使用

gsub

jq -r '.x | gsub(","; "")' <<< '{"x":"1,2,3"}'
123

演示

© www.soinside.com 2019 - 2024. All rights reserved.