Eu gostaria de encontrar arquivos de origem (* .c, * .cpp, * .h) que contenham Linux / MinGW / Cygwin e recursivamente em todos os subdiretórios.
Minha idéia básica é usar find
e grep
. No entanto, a criação de uma expressão regular que pode verificar o nome do arquivo é * .c, * .cpp ou * .h não é fácil. Você poderia me ajudar?
$
final do comando?foo.cpp.old
por exemplo).Eu usaria:
fonte
-E
não consegue encontrar nada. pode ser necessário adicionar -E (como estendido) para torná-lo mais portátil, assim comofind -E . -regex '.*\.(c|h|cpp)' -print
. ;-)Rápido e sujo, e evita nomes de diretório:
fonte
*.cpp
arquivos. 2. Ele encontrará*.|
arquivos. 3. O glob será expandido se houver arquivos correspondentes no diretório atual. Citar evita isso.Você pode usar uma regex um pouco mais simples:
fonte
Eu uso um mac pro que também funciona no bash. Mas toda vez que digito na linha de comando:
diz opção ilegal. Então, eu apenas simplifiquei como:
e achei que realmente funcionou!
fonte