Оставьте sed
в покое, это для сек Tream ред 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:'
Что случилось с ' grep' или 'ack'? –
Определенно работа для [tag: ack]. Или [tag: git] '-grep'. – Johnsyweb
Как и было предложено, перейдите к 'grep -R" \ [[01] \] "*' для сканирования всех файлов, а если есть для многих файлов, отличных от cpp, добавьте '| grep "\ .cpp" ' – fiz