Tri*_*daz 2 ls grep directory-structure regular-expression
如果
ls -aR | grep ":$"
回报
./.hiddendir2:
./dir1:
./dir3:
./dir3/.hiddendir4:
Run Code Online (Sandbox Code Playgroud)
那么你如何更新给 grep 的模式,以便你只得到
./dir1:
./dir3:
Run Code Online (Sandbox Code Playgroud)
(请注意,包含 .hiddendir4 的最后一行被省略,即使它的父级未被隐藏)
这是同一问题的冗长版本,带有一些上下文:
我在http://www.centerkey.com/tree/上找到了一个很棒的脚本,用于打印目录树,但输出有时会被我正在处理的存储库的 .git 目录的后代弄乱。
如果我正确地阅读了源代码,我需要更改这一行的 grep 的模式:
ls -aR | grep ":$"
到目前为止,我想出了在http://regexpal.com/^\./(?!\.)\w+:$
上测试时似乎可行的方法,但当我尝试在 bash 中运行时就崩溃了。我怀疑(1)我使用的正则表达式测试工具之间的差异与 grep 如何解析模式,(2)bash 转义字符要求和(3)模式设计的组合都需要解决才能解决这个问题。在我最终在这方面花费太长时间之前,感谢您的帮助。
您确实应该使用file
比“ls -l”为您提供的内容对目录内容进行更深入的询问。
find . -type f
Run Code Online (Sandbox Code Playgroud)
该find
命令是古老的 Unix 魔法。它将使您免于无休止的正则表达式争论。
归档时间: |
|
查看次数: |
10994 次 |
最近记录: |