我的文件夹中有大约 20 个 C++ 文件,我想检查它们的行长,但我不想手动检查所有文件。Linux/Windows 中是否有任何脚本/程序可用于检查整个文件夹中是否有长行文件?
谢谢!
答案1
要检查行长度超过 80 个字符的文件,可以使用 grep:
grep -l '.\{80,\}'
-l
仅提供匹配的文件。如果您想递归使用,-R *
可以将其应用于特定子文件夹,例如src/*
您可以使用扩展名(或任何其他正则表达式)过滤文件--include='*.c'
$ grep -l '.\{80,\}' -R src/* --include='*.c'
src/main.c
src/model/model.c
如果您想要精确的行,可以删除-l
。如果您想要匹配的行,请添加-n
:
$ grep -n '.\{80,\}' -R src/* --include='*.c'
src/main.vala:2: * A long line comment that takes more than 80 characters and needs some kind of fix.
src/model/model.c:14: * Another long line comment that takes more than 80 characters and needs some kind of fix.
如果你有ripgrep可用速度更快:
$ rg '.{80,}' src
src/main.c
2: * A long line comment that takes more than 80 characters and needs some kind of fix.
src/model/model.c
14: * Another long line comment that takes more than 80 characters and needs some kind of fix.
ripgrep 接受--vimgrep
与 grep 类似的输出。
--color=auto
如果您的系统未默认激活,我强烈建议您使用。
答案2
尝试这样做:
find -type f -exec bash -c '
(( $(wc -l < "$1") > 80)) && echo "$1"
' -- {} \;