Tüm kaynak dosyalar nasıl listelenir (* .c, * .cpp, * .h)


15

Linux / MinGW / Cygwin ve tüm alt dizinlerde özyinelemeli kaynak dosyaları (* .c, * .cpp, * .h) bulmak istiyorum.

Temel fikrim findve kullanmaktır grep. Ancak, verilen dosya adını kontrol edebilen normal bir ifade oluşturmak * .c, * .cpp veya * .h değildir. Bana yardımcı olabilir misin?

Yanıtlar:


14

Bu çalışmalı:

find Linux/MinGW/Cygwin -name '*.c' -o -name '*.cpp' -o -name '*.h'


1

Kullanmak istiyorum:

find . -regex '.*\.\(c\|cpp\|h\)$' -print

1
Macbook'umda, komut dosyası olmayan komut dosyası hiçbir -Eşey bulamıyor. tıpkı daha taşınabilir hale getirmek için bir -E (genişletilmiş olarak) eklemeniz gerekebilir find -E . -regex '.*\.(c|h|cpp)' -print. ;-)
pambda

1

Hızlı ve kirli ve dizin adlarından kaçınır:

find . -type f -name *.[c\|h]

2
Bu komutla ilgili üç sorun vardır: 1. *.cppDosyaları bulamaz . 2. *.|Dosyaları bulacaktır . 3. Geçerli dizinde eşleşen dosyalar varsa glob genişler. Alıntı yapmak bunu önler.
Dennis


0

Bash'da da çalışan bir mac pro kullanıyorum. Ancak komut satırına her yazışımda:

find -name

yasadışı seçenek diyor. Bu yüzden sadece basitleştirdim:

find *.c *.cpp *.h

ve gerçekten işe yaradığını gördüm!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.