PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bash: Wie alle C und C++ verarbeiten?



Linus
21-07-2011, 21:32
In einem Skript rufe ich unter anderem den GNU Indent auf um die C-Dateien im aktuellen Verzeichnis zu formattieren.
Das funktionert mit

for f in *.[cChH]; do
...

Aber der Versuche auch C++-Dateien zu formattieren, mit

for f in *.[cChH][pP]{0-2} ; do
...

scheiterte; die C-Dateien werden nicht mehr aufgelistet und die C++-Dateien meist nicht.
Wie kann man die C und C++-Dateien trotzdem verarbeiten, beispielsweise über die Ausgabe von file? :confused:

undefined
23-07-2011, 15:54
Nicht Perl PCRE ;)
Geklammerte Blöcke wirken so nicht.
Es gibt hier einfachere Möglichkeiten


for i in `find . -type f -iname "*.c" -or -iname "*.CPP"` ; do
echo "### $i"
done

Linus
23-07-2011, 18:45
Danke für den Tip. :)
Ich verwende find mit -maxdepth 1 weil ich es nur im aktuellen Verzeichnis brauche.
Und mit Perl haben meine obigen Zeilen nichts zu tun; ich habe ein Bash-Skript verwendet. Das nächste mal schreibe ich das dazu.

msi
24-07-2011, 18:31
Danke für den Tip. :)
Ich verwende find mit -maxdepth 1 weil ich es nur im aktuellen Verzeichnis brauche.
Und mit Perl haben meine obigen Zeilen nichts zu tun; ich habe ein Bash-Skript verwendet. Das nächste mal schreibe ich das dazu.

undefined schreibt ja auch dass die bash matchings eben genau nich so verhalten wie die reg. expressions von perl (pcre = perl compatible regular expressions)

mina11
12-04-2012, 04:45
hab einmal auf dieses problem gestoßen und danke für den netten info^^

Paul_D
07-09-2012, 17:21
Hi,

vielen Dank für den Tip hab grade gebraucht!!;)

Grüße

Geschenkideen (http://www.shop4more.de/geschenkideen/)