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 |
||
Zeile 2: | Zeile 2: | ||
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 dann praktisch 20x schneller als 20 x ls abc.txt einzeln. | ls *.txt ist dann praktisch 20x schneller als 20 x ls abc.txt einzeln. | ||
Zeile 12: | Zeile 10: | ||
for ((i=0; i<20; ++i )); do echo "Hallo Welt" > $i.txt; done | for ((i=0; i<20; ++i )); do echo "Hallo Welt" > $i.txt; done | ||
</source> | </source> | ||
<br> | |||
{| {{table}} | |||
| align="center" style="background:#f0f0f0;"|''' ''' | |||
| align="center" style="background:#f0f0f0;"|'''Cygwin''' | |||
| align="center" style="background:#f0f0f0;"|''' Linux''' | |||
|- | |||
| einzeln ||6.810s ||0.060s | |||
|- | |||
| en bloque ||0.400s ||0.004s | |||
|} | |||
=== einzeln innerhalb einer Schleife === | === einzeln innerhalb einer Schleife === |
Version vom 13. Januar 2010, 12:19 Uhr
- Zusammenfassen von externen Kommandos:
for i in *; ls $i; done - grep Ersetzen durch =~ :
... | grep abc.txt - cat Ersetzen durch < :
cat abc.txt
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 dann praktisch 20x schneller als 20 x ls abc.txt einzeln.
mkdir bash-performance-tricks
cd bash-performance-tricks
for ((i=0; i<20; ++i )); do echo "Hallo Welt" > $i.txt; done
Cygwin | Linux | |
einzeln | 6.810s | 0.060s |
en bloque | 0.400s | 0.004s |
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