Terminal shell 命令

  • 统计当前目录下 .m 文件的代码行数
1
find . -name "*.m" | xargs wc -l
  • 在当前目录统计 .h.m.xib.c 文件中的代码行数
1
find . -name "*.m" -o -name "*.h" -o -name "*.xib" -o -name "*.c" | xargs wc -l
  • 排除某个目录下的文件
1
find . -path './*/Vendors' -prune -o -name "*.m" -o -name "*.h" -o -name "*.xib" -o -name "*.c" | xargs wc -l
  • 排除多个目录,注意空格
1
find . \( -path './*/Vendors' -o -path './*/Crashlytics.framework' \) -prune -o -name "*.m" -o -name "*.h" -o -name "*.xib" -o -name "*.c" | xargs wc -l
  • 排除空行
1
find . \( -path './*/Vendors' -o -path './*/Crashlytics.framework' \) -prune -o -name "*.m" -o -name "*.h" -o -name "*.xib" -o -name "*.c" | xargs grep -v "^$" | wc -l
  • 排除 / 开头的注释
1
find . \( -path './*/Vendors' -o -path './*/Crashlytics.framework' \) -prune -o -name "*.m" -o -name "*.h" -o -name "*.xib" -o -name "*.c" | xargs grep -v -e "^$" -e "^\s*\/.*$" | wc -l

Sublime Text 正则搜索

  • 统计打开的目录下所有代码行数
1
Find: ^.*$
  • 统计打开的目录下所有代码行数并去除空行
1
Find: ^[ \t]*[^ \t\n\r]+.*$
  • 统计打开的目录下所有代码行数并排除空行和注释行(包括/#? 不是必需的)
1
Find: ^[ \t]*?[^ \t\n\r/#]+?.*$
  • 统计特定文件并排除特定文件夹
1
2
Find: ^[ \t]*?[^ \t\n\r/#]+?.*$
Where: *.h, *.m, *.xib, -*/Vendors/*

参考: