linux awk 在多行上搜索和删除

标签 linux awk

我有一些 json 文件,在一些情况下逗号出现在大括号之前

 "good": "line,"
 "something": "blah",
}

然而,情况并非总是如此,

 "also_good": "line",
 "other": "blah2"
}

我在创建一个 awk 命令时遇到问题,该命令仅在逗号出现在新行的大括号之前时才将其删除。

最佳答案

这个 awk 可以做:

awk '/^[ \t]*}/ {sub(/,$/,"",s)} NR>1 {print s} {s=$0} END {print s}' file
 "good": "line,"
 "something": "blah"
}

如果下一行以 开头,它只会删除行尾的 ,

关于linux awk 在多行上搜索和删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27409332/

相关文章:

linux - 访问要重写的地址时出现错误 403

awk - grep 行中的数字并将其附加到文件中

linux - 无法从 git clone go.googlesource.com 克隆 Git 存储库

awk - 使用 awk 或 cut 命令重新排列列

awk 计算文件列中的行数

unix - 从计数文件中获取概率

python - 唯一计算相邻两行的百分比差异

linux - 多个IP地址,选择发件人

linux - 如果第 n 列包含特定单词,如何删除行?

php - 使用用户定义的 dtime 创建一个 cron 作业