具有n个给定字符的grep行

The*_*gie 2 regex bash grep

我有一个文件路径的文件.例如,看起来像这样:

/home/smth/a/file1
/home/smth/a/file2
/home/smth/b/file1
/home/smth/a/b/file1
Run Code Online (Sandbox Code Playgroud)

我有一个变量F_COUNT=4我想只选择线条,其中'/'字符恰好出现$F_COUNT.

它会返回:

/home/smth/a/file1
/home/smth/a/file2
/home/smth/b/file1
Run Code Online (Sandbox Code Playgroud)

我尝试使用正则表达式grep,特别是我试过grep "'/'\{0,$F_COUNT\}",但这不起作用.我怎样才能做到这一点?

anu*_*ava 5

您可以使用awk计算字段:

F_COUNT=4
awk -F/ -v num="$F_COUNT" 'NF == num+1' file
Run Code Online (Sandbox Code Playgroud)

/home/smth/a/file1
/home/smth/a/file2
/home/smth/b/file1
Run Code Online (Sandbox Code Playgroud)