我尝试使用cloc
带有--strip-comments
参数的工具,它可以正确地递归地从所有文件中删除注释,但有两个问题:
- 它不能“就地”完成
- 生成的文件全部复制到我运行命令的目录中,无论它们的原始位置在哪里
我运行的命令是
find . -name '*.php' | xargs cloc --strip-comments=BAK
我怎样才能让它对文件进行就地编辑或将其通过管道传输到mv
覆盖.BAK
原始文件?
答案1
查看其他一些问题使我找到了一个解决问题的小脚本:
#!/bin/bash
shopt -s globstar
for f in **/*.php; do
cloc --strip-comments=BAK --original-dir "${f%.*}.php"
mv "${f%.*}.php.BAK" "${f%.*}.php"
done
毫无疑问,这还可以进一步优化。