regex - grep 出现 n 次给定字符的行

标签 regex bash grep

我有一个包含文件路径的文件。例如看起来像这样:

/home/smth/a/file1
/home/smth/a/file2
/home/smth/b/file1
/home/smth/a/b/file1

我有一个变量 F_COUNT=4 我只想选择 '/' 字符恰好出现 $F_COUNT 次的行。

它会返回这个:

/home/smth/a/file1
/home/smth/a/file2
/home/smth/b/file1

我尝试将正则表达式与 grep 结合使用,特别是我尝试了 grep "'/'\{0,$F_COUNT\}" ,但这不起作用。我该怎么做?

最佳答案

您可以使用 awk 来计算字段:

F_COUNT=4
awk -F/ -v num="$F_COUNT" 'NF == num+1' file

/home/smth/a/file1
/home/smth/a/file2
/home/smth/b/file1

关于regex - grep 出现 n 次给定字符的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49523111/

相关文章:

database - 使用 grep 提取文件之间的行

bash - 使用 head -n1 获取 osx 上 grep 的第一个匹配项

regex - 迁移: JUnit 3 to JUnit 4: TestSuite

Perl 正则表达式的 Python 版本

regex - 什么正则表达式可用于在 Google App Engine 仪表板中查找长时间运行的 url?

bash - 如何检查 Bash >=5.2 中是否存在关联数组?

windows - Cygwin 的好替代品? - Cygwin 不支持 native 支持 Win32 应用程序

sql - POSTGRES SQL 查询查找所有具有一列的行包含格式为 11 位数字 - 4 位数字的数字

bash - 如何获取给定 ip 地址的以太网端口?

bash - 在 bash 中使用参数文本文件