微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 如何检查(和删除)最后一行(包含字符串的最后一行)是否有逗号作为最后一个字符?

我一直在寻找互联网,但没有结果.

我正在尝试构建一个生成器(在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"
  ]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐