递归内联替换文件中的注释

递归内联替换文件中的注释

我尝试使用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

毫无疑问,这还可以进一步优化。

相关内容