查找长度超过 80 个字符的文件的脚本

查找长度超过 80 个字符的文件的脚本

我的文件夹中有大约 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"
' -- {} \;

相关内容