在XML / JS / Java文件可以包含对其他此类文件的引用的项目中,我希望能够快速概述一个文件更新时需要仔细检查的内容。
因此,这意味着我需要最终查看引用已修改文件的所有文件,以及引用引用已修改文件的所有文件等(以递归方式匹配文件)。
对于一个级别,它非常简单:
grep -E -l -o --include=*.{xml,js,java} -r "$FILE" . | xargs -n 1 basename
但是如何自动匹配(grand-(grand - ))父母呢?
那怎么可能更具可读性呢?例如,树结构?
例如,如果我感兴趣的文件名为modified.js
...
show-referring-files-to modified.js
......我希望得到这样的结果:
some-file-with-ref-to-modified.xml
|__ a-file-referring-to-some-file-with-ref-to-modified.js
another-one-with-ref-to-modified.xml
|__ a-file-referring-to-another-one-with-ref-to-modified.js
|__ a-grand-parent-file-having-ref-to-ref-file.xml
|__ another-file-referring-to-another-one-with-ref-to-modified.js
或任何其他输出(甚至是平面),可以快速检查哪些文件可能会受到更改的影响。
更新 - 当前拟议答案的结果:
ahmsff.js
|__ahmsff.xml
| |__ahmsd.js
| | |__ahmsd.xml
| | | |__ahmst.xml
| | | | |__BESH.java
| |__ahru.js
| | |__ahru.xml
| | | |__ahrut.xml
| | | | |__ashrba.js
| | | | | |__ashrba.xml
| | | | | | |__STR.java
| | |__ahrufrp.xml
| | | |__ahru.js
| | | | |__ahru.xml
| | | | | |__ahrut.xml
| | | | | | |__ashrba.js
| | | | | | | |__ashrba.xml
| | | | | | | | |__STR.java
| | | | |__ahrufrp.xml
| | | | | |__ahru.js
| | | | | | |__ahru.xml
| | | | | | | |__ahrut.xml
| | | | | | | | |__ashrba.js
| | | | | | | | | |__ashrba.xml
| | | | | | | | | | |__STR.java
| | | | | | |__ahrufrp.xml
(...)
答案 0 :(得分:1)
我在shell脚本中使用shell函数(用于递归):
假设文件名是唯一的,没有需要转义的字符:
档案:.scroller-item-wrapper {
display: flex;
flex-direction: column;
flex-grow: 1;
justify-content: center;
overflow: hidden;
.scroll-animator {
position: relative;
width: 100%;
flex-shrink: 0;
flex-grow: 0;
transform: translateY(100%);
&:not(.pre-animated){
animation-name: scrollItemIn;
animation-duration: 1s;
animation-timing-function: ease-out;
animation-fill-mode: forwards;
&:last-of-type {
animation-delay: 1300ms;
}
}
&.leaving {
animation-name: scrollItemOut;
animation-duration: .3s;
animation-timing-function: ease-out;
animation-fill-mode: forwards;
transform: translateY(0%);
&:last-of-type {
animation-delay: 300ms;
}
}
&:last-of-type {
.scroller-item {
margin-bottom: 0;
}
}
}
...
}
/usr/local/bin/show-referring-files-to
仍然有很多性能增强。
编辑:添加$ 3以防止无限循环。