sed - 单行删除特定字符出现次数超过 x 次的行

标签 sed awk grep lines

我认为标题说明了一切,我正在寻找一个单行来删除文件中特定字符(例如/)出现超过 x 次 - 例如 5 的行。

开始:

/Bo/byl/apointe

堆栈溢出

月亮/

预期结果:

/Bo/byl/apointe

月亮/

谢谢你的建议 !

最佳答案

您可以使用 gsub awk 的功能. gsub返回成功替换的次数。因此,您可以将其用作引用来确定特定字符的出现次数。

awk 'gsub(/\//,"&")<5' file

更新 基于 Ed Morton 的建议。

关于sed - 单行删除特定字符出现次数超过 x 次的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16974707/

相关文章:

bash - 使用 sed 在一组行上方添加行

linux - 如何选择文件的其余部分,不包括 linux 中的某些行?

heroku - 如何使用 awk 或 sed 解析/过滤日志行

linux - 使用 sed 和行号在行首插入单词

bash - 根据 shell 脚本中的列打印行

bash - 根据输出将进程输出存储在文件中 (BASH)

bash - 如何在 sed 或 grep 中匹配以空格为前缀的嵌套文本

linux - 使用来自文本和空行的数据创建 .csv

c++ - 如何使用正则表达式查找 C 文件中的所有数组声明?

linux - 在 Linux 中从文件中删除行,完全匹配