使用sed扫描c ++文件

时间:2013-02-13 12:38:20

标签: sed

我需要在几个以.cpp结尾的文件中找到“[0]”和“[1]”的所有实例。这些文件位于不同的子目录中。

使用sed扫描子目录中的所有.cpp文件并查找模式是否可行?

谢谢!

1 个答案:

答案 0 :(得分:1)

单独留下sed s tream ed iting,而不是搜索。使用grep

find . -iname '*.cpp' | while read filename; do grep --with-filename '\[[01]\]' "$filename"; done

或者在剧本中:

find . -iname '*.cpp' | while read filename 
do 
    grep --with-filename '\[[01]\]' "$filename"
done

我在这里使用read(以及$filename周围的引号),以便带有空格的文件名存活下来;在Windows系统中,这是一个特别的噩梦。

如果您知道您的文件都不是特别大,那么您可能会牺牲搜索效率来打字并搜索所有文件,但只能从cpp文件中选择输出:

grep -r '\[[01]\]' . | grep '.cpp:'