Wiem, że aby znaleźć wszystkie pliki h, których potrzebuję użyć: znajdź. -name "* .h" ale jak znaleźć wszystkie pliki h i cpp?jak użyć polecenia "find" unix, aby znaleźć wszystkie pliki cpp i h?
Odpowiedz
find . -name \*.h -print -o -name \*.cpp -print
lub
find . \(-name \*.h -o -name \*.cpp \) -print
Czy coś zmieniło się z 'find' w ciągu ostatnich kilku lat? Nie mogę uruchomić tego w Ubuntu 9.10 lub OS X 10.6. Znajduje pliki '.cpp', ale nie pliki' .h'. Przykład: https://gist.github.com/783687 – Nate
Spróbuj 'find. -name \ *. h -print -o -name \ *. cpp -print' –
To działa. Dzięki. – Nate
find -name "*.h" -or -name "*.cpp"
(edytowany chronić gwiazdki, które zostały zinterpretowane jako formatowania)
Paul Tomblin już dostarczył wspaniały odpowiedź, ale myślałem, że widziałem wzór w co robiłeś.
Szanse są będziesz używać znaleźć wygenerować listę plików do przetworzenia z grep jeden dzień, a dla takiego zadania istnieje znacznie bardziej przyjazne dla użytkownika narzędzie, Ack
działa na każdym systemie, który obsługuje Perl, i przeszukiwania wszystkich C++ powiązanych plików w katalogu rekurencyjnie za dany ciąg jest tak proste jak
ack "int\s+foo" --cpp
"--cpp"
domyślnie mecze .cpp .cc .cxx .m .hpp .hh .h .hxx
plików
(również pomija repozytorium katalogi domyślnie więc przyzwyczajenie pasuje na plikach, które zdarzają się wyglądać w nich plików.)
find . -regex ".*\.[cChH]\(pp\)?" -print
Ten testowany w porządku dla mnie w Cygwin.
To również znajdzie pliki z rozszerzeniem 'c',' Cpp', 'Hpp', które nie są plikami cPP ani zwykłymi rozszerzeniami.Ponadto, nie uniknąłeś poprawnie ostatniej kropki, co oznacza, że będziesz także miał pliki matematyczne o nazwach np. 'xcpp' lub' .C'. Wprowadziłeś kilka problemów, nie opanowując wyrażeń regularnych i nie znalazłeś właściwego. –
@Lyle, twoje polecenie nie działa na Linuksie :( – hugemeow
Można użyć find
w tej krótkiej formie:
find \(-name '*.cpp' -o -name '*.h' \) -print
-print
można pominąć. Używanie -o
tylko pomiędzy wyrażeniami jest szczególnie przydatne, gdy chcesz znaleźć wiele typów plików i wykonać to samo zadanie (powiedzmy obliczając md5sum).
krótki, jasny sposób to zrobić z find
jest:
find . -regex '.*\.\(cpp\|h\)'
Od strony man dla -regex
: "To jest mecz na całej ścieżce, a nie wyszukiwania." Stąd potrzeba przedrostka z .*
, aby dopasować początek ścieżki ./dir1/dir2/...
przed nazwą pliku.
- 1. Jak użyć polecenia Znajdź, aby znaleźć wszystkie pliki z rozszerzeniami z listy?
- 2. UNIX: Jak użyć polecenia Znajdź, aby znaleźć pełną ścieżkę jeśli podano częściowa ścieżka
- 3. Czy mogę dodać pliki .h i .cpp do projektu C#?
- 4. Unix znaleźć: Jak dopasować pliki * .R i * Rd?
- 5. Android.mk, dołącz wszystkie pliki cpp
- 6. Oddzielne pliki .h i .cpp w implementacji klasy szablonów
- 7. Jak powiedzieć lcov gdzie znaleźć moje pliki .cpp i .hh?
- 8. Automatyczne dzielenie (refaktoryzacja) .h na nagłówek i implementację (h + cpp)
- 9. Jak korzystać z cscope dla projektu, który ma pliki .c, .cpp i .h?
- 10. Wyciąg wszystkie zawarte pliki w cpp
- 11. VS2010 Dodatek cpp/h automatyczne grupy kart
- 12. Jak mogę użyć polecenia `find` w systemie Linux, aby usunąć niepuste katalogi?
- 13. Jak zdefiniować reguły w Makefile skompilować tylko, że pliki * .cpp, który został zmodyfikowany (i ich zależności), nie wszystkie pliki * .cpp
- 14. lodash _.find wszystkie mecze
- 15. Znajdź wszystkie zamki i rozpakuj w miejscu - Unix
- 16. automatycznie generuje .h od .cpp/.c
- 17. Jak wykluczyć pliki według nazwy w poleceniu ClearCase find?
- 18. Jak znaleźć funkcje w pliku cpp, które zawierają konkretne słowo
- 19. Znaleźć pliki nie równa się
- 20. Jak znaleźć wartość zwracaną ostatnio wykonanego polecenia w systemie UNIX?
- 21. Znajdź pliki o rozmiarze w systemie Unix
- 22. Eclipse CDT: Skrót do przełączania między .h i .cpp?
- 23. Jak dołączyć pliki JavaScript przez h: outputScript?
- 24. Jak użyć polecenia scalania
- 25. Skopiuj pliki, pomijając istniejące pliki - Unix
- 26. Unix polecenia, aby usunąć wszystko po pierwszej kolumnie
- 27. cmake zawierające pliki h z innych katalogów
- 28. . Pliki .h i .m w Objective-c
- 29. Jak sprawić, aby NetBeans traktował pliki .cpp jako kod źródłowy C++?
- 30. Jak znaleźć pliki z wyłączeniem dowiązań symbolicznych?
Prawdopodobny duplikat [Wykryj uniks: wiele typów plików] (https://stackoverflow.com/questions/7190565/unix-find-multiple-file-types) –