c++ - 如何grep 'vector'而不是 'std::vector'

标签 c++ grep

我在我们代码的一个公共(public) header 中发现了 using namespace std;,我想将其删除。

因此,我需要用 std::vector 替换我代码中出现的所有 vector

我需要写一个表达式来 grep 它,忽略以下情况:

std::vector
// comment with a vector
"string with a vector"

这样我就不会像这样更换它们了

std::std::vector
// comment with a std::vector
"string with a std::vector"

到目前为止,我已经成功地使用表达式忽略了 ''std::vector'' 的情况

grep "^[^:]*vector" *.h

但我在撰写否定词时遇到问题,例如:

  • 找到“X”但找不到“YX”或“Y。 *X

有人可以帮忙吗?

最佳答案

你可能会称之为作弊,但我只是将所有 std::vector 替换为 std::fector,替换所有 vector通过 std::vector 然后将所有 std::fector 替换回 std::vector

这不是很酷,但对于一次性解决方案来说,它可能比构建复杂的表达式更快地解决您的问题。单独考虑表达式比只做它需要更长的时间。

确保你的程序没有使用 std::fector :)

关于c++ - 如何grep 'vector'而不是 'std::vector',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18717108/

相关文章:

c++ - c++中矩阵的加法

linux - 如果我提供的搜索词太长,为什么 pgrep 找不到我的进程?

regex - grep - 匹配文件中带有前导空格的路径

C++、多态和迭代器

c++ - 将数据存储在字符串中并进行比较

c++ - 在C++中实现光栅化和深度缓冲

c++ - 如何找出全局变量是否已在 C++ 中更改?

sed - 从最后一行删除逗号

linux - 从一个文件中提取与另一个文件中的行相对应的数据

linux - 计算 1kb 窗口的平均值