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}} | ||
===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. | 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}} | {| {{table}} | ||
| align="center" style="background:#f0f0f0;"|''' ''' | | align="center" style="background:#f0f0f0;"|''' ''' | ||
Zeile 17: | Zeile 12: | ||
| align="center" style="background:#f0f0f0;"|''' Linux''' | | align="center" style="background:#f0f0f0;"|''' Linux''' | ||
|- | |- | ||
| | | vorher ||6.810s ||0.060s | ||
|- | |- | ||
| | | nachher ||0.400s ||0.004s | ||
|} | |} | ||
=== einzeln innerhalb einer Schleife === | ===Demonstration=== | ||
<br> | |||
<source lang=bash> | |||
mkdir bash-performance-tricks | |||
cd bash-performance-tricks | |||
for ((i=0; i<20; ++i )); do echo "Hallo Welt" > $i.txt; done | |||
</source> | |||
==== einzeln innerhalb einer Schleife ==== | |||
# cygwin | # cygwin | ||
Zeile 39: | Zeile 42: | ||
=== in einem Rutsch === | ==== in einem Rutsch ==== | ||
# cygwin | # cygwin |
Version vom 13. Januar 2010, 12:25 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