我需要在几个以.cpp结尾的文件中找到“[0]”和“[1]”的所有实例。这些文件位于不同的子目录中。
使用sed扫描子目录中的所有.cpp文件并查找模式是否可行?
谢谢!
答案 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:'