我遇到一个问题,我在扩展名为.doc,.js,.pdf,.md,.txt
的目录中有文件我想忽略除.txt之外的所有文件,并获取这些文件中总行数的计数。
使用此命令,我可以忽略.md,但如何包含其他扩展?
git ls-files *[^.md] | xargs cat | wc -l
我试过了:
git ls-files *[^.md|^.pdf||^.doc] | xargs cat | wc -l
但这不起作用。
答案 0 :(得分:1)
您不需要git ls-files
来为您执行限制文件的工作,您只需在管道中插入grep
即可。此变体是肯定的,只选择您列出的扩展名:
git ls-files | egrep '\.(doc|js|pdf|md)$' | xargs cat | wc -l
此变体为否定,不包括.txt
并保留其他内容:
git ls-files | egrep -v '\.txt$' | xargs cat | wc -l
但请注意,wc -l
并未真正为Word文档和PDF等二进制文件提供任何有意义的输出。