我试图使用sed删除括号内的重复数字.
所以我有以下字符串:
Abdc 1234 1234 (5678) (5678) (9012) (9012) (3456)
Run Code Online (Sandbox Code Playgroud)
我想用sed删除括号内的任何4位数字,包括括号.所以我的字符串应如下所示:
Abdc 1234 1234 (5678) (9012) (3456)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,"(5678)"和"(9012)"被删除,因为它们是重复括号内的4位数字."1234"号码未删除,因为它们不在括号内."(3456)"未被删除,因为它没有重复.
我正在使用jq v1.5.鉴于输入:
{
"mine": [
"foo",
"baz"
],
"stuff": {
"foo": {
"name": "Foo"
},
"bar": {
"name": "Bar"
},
"baz": {
"name": "Baz"
},
"qux": {
"name": "Qux"
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何获取.mine的所有.stuff.name?
例如,期望的输出:
[
"Baz",
"Foo"
]
Run Code Online (Sandbox Code Playgroud) 在bash脚本中,有什么实用工具以及如何在两个字符串之间删除文本,包括stings.
原文:
(ABC blah1)blah 2(def blah 5)blah 7)(DEF blah 8)blah 9
Run Code Online (Sandbox Code Playgroud)
我想删除'(def'和下一个')'之间的所有文本.所以我想要的输出是:
(ABC blah1)blah 2blah 7)blah 9
Run Code Online (Sandbox Code Playgroud)
最好让搜索不区分大小写...在上面的例子中,它找到并删除'(def ...)'和'(DEF ...)'
我试过了:
echo "(ABC blah1)blah 2(def blah 5)blah 7)(DEF blah 8)blah 9" | sed 's/(def.*)//gI'
Run Code Online (Sandbox Code Playgroud)
但输出是:
(ABC blah1)blah 2blah 9
Run Code Online (Sandbox Code Playgroud)
我认为这是因为'.*'在sed中是贪婪的.
我有什么想法可以格式化我的sed搜索字符串?甚至是最好的工具吗?我从一个bash脚本运行它,所以任何基本的util都可以通过bash来实现.
我有以下 JSON:
{
"accounts": [
{
"group": 1,
"users": [
{
"name": "John",
"id": 1
},
{
"name": "Jane",
"id": 2
}
]
},
{
"group": 2,
"users": [
{
"name": "Bob",
"id": 3
},
{
"name": "Mary",
"id": 3
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我希望输出看起来像这样:
{
"accounts": [
{
"group": 1,
"name": "John",
"id": 1
},
{
"group": 1,
"name": "Jane",
"id": 2
},
{
"group": 2,
"name": "Bob",
"id": 3
},
{
"group": 2,
"name": "Mary",
"id": 3 …Run Code Online (Sandbox Code Playgroud)