Sh 检查是否包含的最简单方法
我想检查cpp文件是否包含Sh 检查是否包含的最简单方法,sh,Sh,我想检查cpp文件是否包含 #include <stdafx.h> #包括 因为我不想让这个东西失败,当评论在包含之前,我更喜欢一种检查方法,它尊重C++的实际语法。 这很容易做到(以跨平台的方式(在Windows上使用cygwin sh))吗?cpp,GNU编译器集合中的C预处理器,有一个-M标志,列出C文件所依赖的文件,即它包含的头。您可以对所有文件运行cpp,然后过滤掉stdafx.h。我个人不使用Cygwin,但我相信类似的东西应该会起作用: find . -type f
#include <stdafx.h>
#包括
<>因为我不想让这个东西失败,当评论在包含之前,我更喜欢一种检查方法,它尊重C++的实际语法。
这很容易做到(以跨平台的方式(在Windows上使用cygwin sh))吗?
cpp
,GNU编译器集合中的C预处理器,有一个-M
标志,列出C文件所依赖的文件,即它包含的头。您可以对所有文件运行cpp
,然后过滤掉stdafx.h。我个人不使用Cygwin,但我相信类似的东西应该会起作用:
find . -type f -name "*.cpp" -exec sh -c "echo {} && cpp -M {} | grep -c stdafx.h" \;
这个查找s everyf
ile,其中包含一个以cpp结尾的名称
,然后exec
生成一个sh
ell,然后echo
生成我们正在查看的文件名。然后它通过cpp
运行它,最后grep
为我们正在查找的标题ping cpp的输出并计算行数。输出应该如下所示(在Git源代码树中查找stdio.h):
当然,如果你只想检查一个文件,你不需要整个find调用,你只需要执行“cpp-M myfile.cpp | grep-c stdafx.h”,如果它不在那里,它会给你一个0,如果在那里,它会给你一个1,具有一个-M
标志,该标志列出了C文件所依赖的文件,即它包含的标题。您可以对所有文件运行cpp
,然后过滤掉stdafx.h。我个人不使用Cygwin,但我相信类似的东西应该会起作用:
find . -type f -name "*.cpp" -exec sh -c "echo {} && cpp -M {} | grep -c stdafx.h" \;
这个查找s everyf
ile,其中包含一个以cpp结尾的名称
,然后exec
生成一个sh
ell,然后echo
生成我们正在查看的文件名。然后它通过cpp
运行它,最后grep
为我们正在查找的标题ping cpp的输出并计算行数。输出应该如下所示(在Git源代码树中查找stdio.h):
当然,如果你只想检查一个文件,你不需要整个find调用,你只需要执行“cpp-M myfile.cpp | grep-c stdafx.h”,如果它不在那里,它会给你一个0,如果在那里,它会给你一个1,具有一个-M
标志,该标志列出了C文件所依赖的文件,即它包含的标题。您可以对所有文件运行cpp
,然后过滤掉stdafx.h。我个人不使用Cygwin,但我相信类似的东西应该会起作用:
find . -type f -name "*.cpp" -exec sh -c "echo {} && cpp -M {} | grep -c stdafx.h" \;
这个查找s everyf
ile,其中包含一个以cpp结尾的名称
,然后exec
生成一个sh
ell,然后echo
生成我们正在查看的文件名。然后它通过cpp
运行它,最后grep
为我们正在查找的标题ping cpp的输出并计算行数。输出应该如下所示(在Git源代码树中查找stdio.h):
当然,如果你只想检查一个文件,你不需要整个find调用,你只需要执行“cpp-M myfile.cpp | grep-c stdafx.h”,如果它不在那里,它会给你一个0,如果在那里,它会给你一个1,具有一个-M
标志,该标志列出了C文件所依赖的文件,即它包含的标题。您可以对所有文件运行cpp
,然后过滤掉stdafx.h。我个人不使用Cygwin,但我相信类似的东西应该会起作用:
find . -type f -name "*.cpp" -exec sh -c "echo {} && cpp -M {} | grep -c stdafx.h" \;
这个查找s everyf
ile,其中包含一个以cpp结尾的名称
,然后exec
生成一个sh
ell,然后echo
生成我们正在查看的文件名。然后它通过cpp
运行它,最后grep
为我们正在查找的标题ping cpp的输出并计算行数。输出应该如下所示(在Git源代码树中查找stdio.h):
当然,如果您只想检查一个文件,不需要整个find调用,只需执行“cpp-M myfile.cpp | grep-c stdafx.h”即可,如果不在其中,则为0;如果在其中,则为1。Ah thanx,这看起来非常完美。遗憾的是,cpp
没有安装在Windows上,所以我们必须在那里解决。cpp
应该是Cygwin中的gcc
软件包的一部分。您可能在安装程序中禁用了它。再次运行安装程序并启用Devel组。进一步的问题是,当输入cpp时,还需要传递所有包含路径,因此cpp
不会发出错误。啊,thanx,这看起来很完美。遗憾的是,cpp
没有安装在Windows上,所以我们必须在那里解决。cpp
应该是Cygwin中的gcc
软件包的一部分。您可能在安装程序中禁用了它。再次运行安装程序并启用Devel组。进一步的问题是,当输入cpp时,还需要传递所有包含路径,因此cpp
不会发出错误。啊,thanx,这看起来很完美。遗憾的是,cpp
没有安装在Windows上,所以我们必须在那里解决。cpp
应该是Cygwin中的gcc
软件包的一部分。您可能在安装程序中禁用了它。再次运行安装程序并启用Devel组。进一步的问题是,当输入cpp时,还需要传递所有包含路径,因此cpp
不会发出错误。啊,thanx,这看起来很完美。遗憾的是,cpp
没有安装在Windows上,所以我们必须在那里解决。cpp
应该是Cygwin中的gcc
软件包的一部分。您可能在安装程序中禁用了它。再次运行安装程序并启用Devel组。进一步的问题是,当输入cpp时,您还需要