Bash-Tricks: Zusammenfassen externer Kommandos

Aus Hergipedia
Zur Navigation springen Zur Suche springen

Bash: Performance Tricks

  1. Zusammenfassen von externen Kommandos: for i in *; ls $i; done
  2. grep Ersetzen durch =~ : ... | grep abc.txt
  3. 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