我一直在网上寻找,但没有结果。
我正在尝试构建一个包生成器(在 shell/bash 中),并且相应的包包含(一个或多个)json 文件。浏览 json 文件时,如果用户想要删除其中一个步骤,我必须首先考虑如果他要删除的步骤是最后一步怎么办。如果是这样,最后一步的前一个将包含一个逗号,但 json 格式不允许这样做。
{
"operation_machinetype": "Ford",
"operation_steps": [
"steps/Step_1/01_paint_the_car.json",
"steps/Step_2/01_drive_the_car.json",
"steps/Step_2/02_park_the_car.json"
]
}
例如,如果我删除“steps/Step2/02_park_the_car.json”,那么“steps/Step2/01_drive_the_car.json”将是最后一步,但逗号会导致错误。
提前谢谢大家。
最佳答案
$ cat tst.awk
index($0,tgt) {
if (!/,[[:space:]]*$/) {
sub(/,[[:space:]]*$/,"",prev)
}
next
}
NR>1 { print prev }
{ prev = $0 }
END { print prev }
$ awk -v tgt='"steps/Step_2/02_park_the_car.json"' -f tst.awk file
{
"operation_machinetype": "Ford",
"operation_steps": [
"steps/Step_1/01_paint_the_car.json",
"steps/Step_2/01_drive_the_car.json"
]
}
$ awk -v tgt='"steps/Step_2/01_drive_the_car.json"' -f tst.awk file
{
"operation_machinetype": "Ford",
"operation_steps": [
"steps/Step_1/01_paint_the_car.json",
"steps/Step_2/02_park_the_car.json"
]
关于linux - 如果最后一行(包含字符串的最后一次出现)是否以逗号作为最后一个字符,我该如何检查(并删除)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34881053/