Was ist die richtige Syntax für:
find . -type f -name \*.\(shtml\|css\)
Das funktioniert, ist aber unelegant:
find . -type f -name \*.shtml > f.txt && find . -type f -name \*.css >> f.txt
Wie mache ich das gleiche, aber mit weniger Tastenanschlägen?
bash
find
filenames
file-extension
Dave Jarvis
quelle
quelle
). Second, the parentheses need to go around whole ‘primaries’ (the open parenthesis needs to be before
-name`, nicht zwischen ihm und seinem 'Operanden').Hier ist eine Möglichkeit, Ihre erste Version zu erstellen:
quelle
Sie müssen in Klammern setzen, um nur Dateien einzuschließen:
Bonus : Dies ist eine POSIX-konforme Syntax.
quelle
Ich stelle oft fest, dass ich egrep, längere Pipes oder Perl für noch komplexere Filter verwende:
Es mag etwas weniger effizient sein, aber das ist normalerweise kein Problem, und für komplexere Dinge ist es normalerweise einfacher zu konstruieren und zu modifizieren.
Die Standard-Einschränkung bezieht sich darauf, dass dies nicht für Dateien mit seltsamen Dateinamen (z. B. mit Zeilenumbrüchen) verwendet wird.
quelle