Bash-Tricks: Zusammenfassen externer Kommandos: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
KKeine Bearbeitungszusammenfassung |
KKeine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
[[Bash: Performance Tricks]] | [[Bash: Performance Tricks]] | ||
{{:Bash: Performance Tricks}} | {{:Bash: Performance Tricks}} | ||
===Regel=== | ===Regel=== | ||
Externe Kommandos von der shell nach Möglichkeit en-bloque auf alle Dateien auf einmal aufrufen. | Externe Kommandos von der shell nach Möglichkeit en-bloque auf alle Dateien auf einmal aufrufen. |
Version vom 13. Januar 2010, 12:27 Uhr
- Zusammenfassen von externen Kommandos:
for i in *; ls $i; done - grep Ersetzen durch =~ :
... | grep abc.txt - cat Ersetzen durch < :
cat abc.txt
Regel
Externe Kommandos von der shell nach Möglichkeit en-bloque auf alle Dateien auf einmal aufrufen. Als Beispiel sollen 20 Dateien in einem Verzeichnis angezeigt werden.
ls *.txt ist praktisch 20x schneller als 20 x ls Datei_N.txt einzeln.
Cygwin | Linux | |
vorher | 6.810s | 0.060s |
nachher | 0.400s | 0.004s |
Demonstration
mkdir bash-performance-tricks
cd bash-performance-tricks
for ((i=0; i<20; ++i )); do echo "Hallo Welt" > $i.txt; done
einzeln innerhalb einer Schleife
# cygwin time for i in *.txt; do ls -l $i; done ... real 0m6.810s user 0m0.820s sys 0m3.880s # Linux time for i in *.txt; do ls -l $i; done ... real 0m0.060s user 0m0.004s sys 0m0.032s
in einem Rutsch
# cygwin time ls -l *.txt ... real 0m0.400s user 0m0.040s sys 0m0.230s # Linux time ls -l *.txt ... real 0m0.004s user 0m0.000s sys 0m0.000s