我有一个下面的 json 文件,我想获得 hostId,只有当它name
包含一些特定的值时。我想使用shell脚本来实现这一点。
{
"items" : [ {
"name" : "first-block-e70a2fe8fd0531ad1f87de49f03537a6",
"type" : "STORE",
"hostRef" : {
"hostId" : "166219e3-be5c-46d0-b4c7-33543a29ce32"
},
"roleState" : "STARTED",
"healthSummary" : "GOOD",
},
{
"name" : "second-block-c21a1ae8dd2831cd1b87de49f98274e8",
"type" : "STORE",
"hostRef" : {
"hostId" : "176429e3-be5c-46d0-b4c7-33543a29ad63"
},
"roleState" : "STARTED",
"healthSummary" : "GOOD",
}
{
"name" : "first-block-a85d2fe6fd0482ad1f54de49f45174a0",
"type" : "STORE",
"hostRef" : {
"hostId" : "176429e3-ae1d-46d0-b4c7-66123a24fa82"
},
"roleState" : "STARTED",
"healthSummary" : "GOOD",
}
}
Run Code Online (Sandbox Code Playgroud)
例如:如果名称包含带有“first-block”的内容,那么我应该将 hosdId 设为
166219e3-be5c-46d0-b4c7-33543a29ce32
176429e3-ae1d-46d0-b4c7-66123a24fa82
Run Code Online (Sandbox Code Playgroud)
如何遍历 …
我有一个要求,如果满足特定条件,我需要将文件的全部内容复制到同一个文件中。这是文件:
$ cat in.txt
ip
10.22.1.34
10.22.1.35
Run Code Online (Sandbox Code Playgroud)
当满足某个条件时,例如
if [[ d=1 ]]; then
copy the file content
fi
Run Code Online (Sandbox Code Playgroud)
文件的内容应复制如下:
ip
10.22.1.34
10.22.1.35
ip
10.22.1.34
10.22.1.35
Run Code Online (Sandbox Code Playgroud) 我有一个属性文件,其中特定键具有逗号分隔值。
$cat sample.prorerties
value=alex,raj,kaly,rema
Run Code Online (Sandbox Code Playgroud)
在我的 shell 脚本中,我实现了这个属性文件并使用键value
来获取它的值。
...
. sample.properties
echo $value
...
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出
$ alex,raj,kaly,rema
Run Code Online (Sandbox Code Playgroud)
不过我正在寻找像这样的空格分隔值
alex raj kaly rema
Run Code Online (Sandbox Code Playgroud)
我知道如何对文件执行此操作,但是我不确定分配给变量的内容。任何帮助深表感谢。