Awk: Unterschied zwischen den Versionen

Aus Thomas Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „===man page === ==== DESCRIPTION ==== Gawk is the GNU Project's implementation of the AWK programming language. It conforms to the definition of the language…“)
 
KKeine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 15: Zeile 15:
* Filtern der zusätzlichen Dateien mit awk.
* Filtern der zusätzlichen Dateien mit awk.


Mit folgenden Script lässt sich die Aufgabe jedoch lösen:
Mit dem Script mehrfach.awk sich die Aufgabe jedoch lösen:


Das awk script:
Script: ''mehrfach.awk:''


  # awk script um mehrfache Dateien mit
  # awk script um mehrfache Dateien mit
Zeile 28: Zeile 28:
listet die mehrfachen Dateien bis auf die erste Datei. Kommando
listet die mehrfachen Dateien bis auf die erste Datei. Kommando


Das Kommando
Der folgende Befehl


  md5sum * | sort -u | awk -F ' ' -f mehrfach.awk
  md5sum * | sort -u | awk -F ' ' -f mehrfach.awk
Zeile 34: Zeile 34:
listet alle zusätzlichen Kopien einer Dateien auf. (Die erste Datei ist nicht enthalten.)
listet alle zusätzlichen Kopien einer Dateien auf. (Die erste Datei ist nicht enthalten.)


Das Kommando
Der nächste Befehl:


  rm $(md5sum * | sort -u | awk -F ' ' -f mehrfach.awk)
  rm $(md5sum * | sort -u | awk -F ' ' -f mehrfach.awk)

Aktuelle Version vom 21. Januar 2012, 15:55 Uhr

man page

DESCRIPTION

Gawk is the GNU Project's implementation of the AWK programming language. It conforms to the definition of the language in the POSIX 1003.2 Command Language And Utilities Standard. This version in turn is based on the description in The AWK Programming Language, by Aho, Kernighan, and Weinberger, with the additional features found in the System V Release 4 version of UNIX awk. Gawk also provides more recent Bell Laboratories awk extensions, and a number of GNU-specific extensions.

Pgawk is the profiling version of gawk. It is identical in every way to gawk, except that programs run more slowly, and it automatically produces an execution profile in the file awkprof.out when done. See the - -profile option, below.

Mehrfache Dateien finden

Häufig stellt sich die Aufgabe gleiche Dateien zu identifizieren, die unterschiedliche Namen haben. Eine identische Größe, Speicherdatum etc. sind dazu nicht ausreichend. Die Aufgabe lässt sich wie folgt lösen:

  • Bestimmen des MD5 Hash Wertes für alle Dateien.
  • Sortieren der Dateien
  • Filtern der zusätzlichen Dateien mit awk.

Mit dem Script mehrfach.awk sich die Aufgabe jedoch lösen:

Script: mehrfach.awk:

# awk script um mehrfache Dateien mit
# unterschiedlichen Dateinamen zu finden
# input md5sum * | sort
BEGIN { md5sum = "" ; }
md5sum == $1 { print $2 }
md5sum != $1 { md5sum = $1 }

listet die mehrfachen Dateien bis auf die erste Datei. Kommando

Der folgende Befehl

md5sum * | sort -u | awk -F ' ' -f mehrfach.awk

listet alle zusätzlichen Kopien einer Dateien auf. (Die erste Datei ist nicht enthalten.)

Der nächste Befehl:

rm $(md5sum * | sort -u | awk -F ' ' -f mehrfach.awk)

löscht alle zusätzlichen Kopien einer Dateien.

Diese Variante ist wesentlich schneller, als die Möglichkeit jede Datei mit jeder zu vergleichen. Theoretisch könnten zwei unterschiedliche Dateien den gleichen Hash-Wert haben, die Wahrscheinlichkeit ist jedoch sehr gering.