我有以下目录列表:
/home/a/b/c/d/5089/294265
/home/a/b/c/d/5089/79783
/home/a/b/c/d/41630
/home/a/b/c/d/41630/293520
/home/a/b/c/d/41630/293520/293520
...
我想只过滤7个目录深的行。在这个例子中,我只需要一行:/ home / a / b / c / d / 41630/293520/293520
请建议。 感谢
答案 0 :(得分:2)
您可以使用grep
。话说:
grep -P '(/[^/]*){8}' inputfile
将返回
/home/a/b/c/d/41630/293520/293520
不确定如何生成此商家信息,但如果您使用的是find
,则可以通过指定-mindepth
和-maxdepth
选项来控制深度。
答案 1 :(得分:2)
您可以尝试:
find /home/x/y/z/ -print | awk -F/ 'NF>8'
或者你可以试试
find /home/x/y/z/ -mindepth 7 -print
答案 2 :(得分:1)
YourInput | sed 's|/.|&|7;t
d'
删除小于7“/”的行,后跟
答案 3 :(得分:0)
echo /home/a/b/c/d/*/*/*
应该这样做。
答案 4 :(得分:0)
使用awk
:
find /home| awk -F \/ 'NF==9' file