Bash-Tricks: Zusammenfassen externer Kommandos: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
K (Die Seite wurde neu angelegt: „{{:Bash: Performance Tricks}} Externe Kommandos von der shell nach Möglichkeit en-bloque auf alle Dateien auf einmal aufrufen. Als Beispiel sollen 20 Dateien i…“) |
KKeine Bearbeitungszusammenfassung |
||
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Bash: Performance Tricks]] | |||
{{:Bash: Performance Tricks}} | {{:Bash: Performance Tricks}} | ||
===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. | ||
Als Beispiel sollen 20 Dateien in einem Verzeichnis angezeigt werden. | |||
''' ''ls *.txt'' ist praktisch 20x schneller als 20 x ''ls Datei_N.txt'' einzeln.''' | |||
{| {{table}} | |||
| align="center" style="background:#f0f0f0;"|''' ''' | |||
| align="center" style="background:#f0f0f0;"|'''Cygwin''' | |||
| align="center" style="background:#f0f0f0;"|''' Linux''' | |||
|- | |||
| vorher ||6.810s ||0.060s | |||
|- | |||
| nachher ||0.400s ||0.004s | |||
|} | |||
===Demonstration=== | |||
<source lang=bash> | <source lang=bash> | ||
mkdir bash-performance-tricks | mkdir bash-performance-tricks | ||
Zeile 13: | Zeile 24: | ||
</source> | </source> | ||
=== einzeln innerhalb einer Schleife === | ==== einzeln innerhalb einer Schleife ==== | ||
# cygwin | # cygwin | ||
Zeile 30: | Zeile 41: | ||
=== in einem Rutsch === | ==== in einem Rutsch ==== | ||
# cygwin | # cygwin |
Aktuelle Version vom 13. Januar 2010, 12:28 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