Hilfe ich verstehe das AWK Programm nicht

Alex Krug - Donnerstag, 09. Februar 2017 10:04:17 - 3 Antworten

Hallo Liebe Linux Community,

im zuge meiner Arbeit bin ich auf dieses AWK Programm gekommen. Leider sind meine Kenntnisse diesbezüglich sehr gering. Vielleicht kann mir hier jemand erklären was es das programm genau macht ? Was AWK an sich tut ist mir bekannt happy
Programm:
if test -s $1
then awk -F# ' # -F = Trennzeichen "#"
{
if (prev1==""blunk
{ s19=0
s24=0
x = sprintf("%s",$7)
x1= sprintf("%s",$35)
x2= sprintf("%s",$36)
x3= sprintf("%s",$13)
x4= sprintf("%s",$33)
x5= sprintf("%s",$11)
prev1 =$1 ; prev2 =$2 ; prev3 =$3 ; prev4 =$4 ; prev5 =$5
prev6 =$6 ; prev7 =$7 ; prev8 =$8 ; prev9 =$9 ; prev10=$10
prev11=$11 ; prev12=$12 ; prev13=$13 ; prev14=$14 ; prev15=$15
prev16=$16 ; prev17=$17 ; prev18=$18 ; prev19=$19 ; prev20=$20
prev21=$21 ; prev22=$22 ; prev23=$23 ; prev24=$24 ; prev25=$25
prev26=$26 ; prev27=$27 ; prev28=$28 ; prev29=$29 ; prev30=$30
prev31=$31 ; prev32=$32 ; prev33=$33 ; prev34=$34 ; prev35=$35
prev36=$36 ; prev37=$37 ; prev38=$38 ; prev39=$39 ; prev40=$40
prev41=$41 ; prev42=$42 ; prev43=$43 ; prev44=$44 ; prev45=$45
prev46=$46 ; prev47=$47 ; prev48=$48
}
if ($1!=prev1 || $2!=prev2 || $3!=prev3 || $16!=prev16 || $4!=prev4 || $39!=prev39 || $9!=prev9 || $31!=prev31 || $12!=prev12 || $5!=prev5 || $40!=prev40 || $41!=prev41 )
{ printf "%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%.2f#%.2f#%.2f#%.2f#%.2f#%.2f#%.2f#%.2f#%.2f#%.2f#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%.2f#%.2f#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#\n",prev1,prev2,prev3,prev4,prev5,prev6,x,prev8,prev9,prev10,x5,prev12,x3,prev14,prev15,prev16,prev17,prev18,s19,prev20,prev21,prev22,prev23,s24,prev25,prev26,prev27,prev28,prev29,prev30,prev31,prev32,x4,prev34,x1,x2,prev37,prev38,prev39,prev40,prev41,prev42,prev43,prev44,prev45,prev46,prev47,prev48
prev1 =$1 ; prev2 =$2 ; prev3 =$3 ; prev4 =$4 ; prev5 =$5
prev6 =$6 ; prev7 =$7 ; prev8 =$8 ; prev9 =$9 ; prev10=$10
prev11=$11 ; prev12=$12 ; prev13=$13 ; prev14=$14 ; prev15=$15
prev16=$16 ; prev17=$17 ; prev18=$18 ; prev19=$19 ; prev20=$20
prev21=$21 ; prev22=$22 ; prev23=$23 ; prev24=$24 ; prev25=$25
prev26=$26 ; prev27=$27 ; prev28=$28 ; prev29=$29 ; prev30=$30
prev31=$31 ; prev32=$32 ; prev33=$33 ; prev34=$34 ; prev35=$35
prev36=$36 ; prev37=$37 ; prev38=$38 ; prev39=$39 ; prev40=$40
prev41=$41 ; prev42=$42 ; prev43=$43 ; prev44=$44 ; prev45=$45
prev46=$46 ; prev47=$47 ; prev48=$48
s19=0
s24=0
x = sprintf("%s",$7)
x1= sprintf("%s",$35)
x2= sprintf("%s",$36)
x3= sprintf("%s",$13)
x4= sprintf("%s",$33)
x5= sprintf("%s",$11)
}
s19+=$19
s24+=$24
if ($7 != prev7)
{
x = sprintf("%s%s",x,$7)
x1= sprintf("%s%s",x1,$35)
x4= sprintf("%s%s",x4,$33)
x5= sprintf("%s%s",x5,$11)
prev7=$7
}
if ($13 != prev13)
{
x3= sprintf("%s%s",x3,$13)
prev13=$13
}
if ($36 != prev36)
{
x2= sprintf("%s%s",x2,$36)
prev36=$36
}
}
END { printf "%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%.2f#%.2f#%.2f#%.2f#%.2f#%.2f#%.2f#%.2f#%.2f#%.2f#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#%.2f#%.2f#%s#%s#%s#%s#%s#%s#%s#%s#%s#%s#\n",prev1,prev2,prev3,prev4,prev5,prev6,x,prev8,prev9,prev10,x5,prev12,x3,prev14,prev15,prev16,prev17,prev18,s19,prev20,prev21,prev22,prev23,s24,prev25,prev26,prev27,prev28,prev29,prev30,prev31,prev32,x4,prev34,x1,x2,prev37,prev38,prev39,prev40,prev41,prev42,prev43,prev44,prev45,prev46,prev47,prev48
} ' $1
fi

Ich würde mich über jetweilige Hilfe freuen !

Gruß
Alex

Antworten
awk
hha4491 (unangemeldet), Dienstag, 14. Februar 2017 15:19:01
Ein/Ausklappen

Hallo Alex,
awk ist ein Programm zur Mustererkennun/Textbearbeitung. Vor dem, was Du geschickt hast, müßten noch Lesebefehle wie cat, read stehen. Sonst könnte man $1 usw., nicht auswerten.
awk -F# legt + als Feldtrenner fest.
Es wäre nicht schlecht, eiune Beispiueldatei zu haben.


Bewertung: 177 Punkte bei 12 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: awk
hha4491 (unangemeldet), Dienstag, 14. Februar 2017 16:28:49
Ein/Ausklappen

Ich meinte #,nicht +


Bewertung: 195 Punkte bei 10 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: awk
hha4491 (unangemeldet), Mittwoch, 15. Februar 2017 17:08:02
Ein/Ausklappen

Hier steht einiges über awk:
https://wiki.ubuntuusers.de/awk/
https://www-user.tu-chemnit..._linux_werkzeugkasten/awk.html
https://www.clug.de/vortraege/awk/


Bewertung: 150 Punkte bei 12 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Ähnliche Artikel

  • The Answer Girl
    Kaum installiert, schon wieder veraltet? Ein FreeBSD-Upgrade ist nicht schwer, vorausgesetzt, man lässt sich vom kleinen Dämonen nicht ins Bockshorn jagen. Mit frisch aktualisierter Software gehen die ersten Schritte auf dem etwas anderen freien Betriebssystem gleich viel leichter von der Hand.
  • Internet
    Jeden Tag werden die Kosten für den Online Zugang gesenkt. Damit lohnt es sich für immer mehr Menschen im Internet zu surfen. Denn nirgends findet man heute schneller die Nachrichten und Informationen, die für einen wichtig sind. Für viele Linux-Anwender ist das Austauschen von News oder das Recherchieren nach neuen Programmversionen schon lange Alltag.
  • deskTOPia: wmi
    Viele Fenstermanager lassen sich heutzutage fast ausschließlich per Maus bedienen – die Tastatur fristet ein Schattendasein. WMI zeigt, dass es auch anders geht.
  • man und info
    Schnell eine Befehlsoption nachschauen, einfach stöbern, was ein Kommando sonst noch alles kann, oder ausführliche Hilfetexte lesen mit Querverweisen – mit man und info bleiben Sie im Bilde.
  • Aktuelle Software im Kurztest
    Als umfangreiche IDE für alle, die primär in C, Perl, PHP oder HTML entwickeln, bietet <s>Griffon 1.6.0<s> zahlreiche Einstellungen und viele Funktionen, die man sonst nur von größeren Lösungen kennt.Als einfache, aber nützliche Oberfläche für den Webseiten-Kopierer HTTrack fasst <s>Httraqt 1.1.0<s> dessen wichtigste Einstellungen in einer komfortablen, intuitiv bedienbaren Oberfläche zusammen.Die Zahl der von Linux unterstützten Archiv- und Kompressionsformate wird immer umfangreicher. <s>Peazip 5.0<s> erspart die Mühe, hier mit zahlreichen Kommandozeilenprogrammen jonglieren zu müssen.Organisieren Sie Ihre Musiksammlung in Verzeichnissen, dann ist <s>Pogo 0.8.2<s> das Richtige für Sie. Es bietet eine einfache Bedienung, und Sie können im Handumdrehen ganze Alben in die Wiedergabeliste übernehmen.

Aktuelle Fragen

WLAN lässt sich nicht einrichten
Werner Hahn, 21.03.2017 14:16, 0 Antworten
Dell Latitude E6510, Ubuntu 16.4, Kabelbox von Telecolumbus. Nach Anklicken des Doppelpfeiles (o...
"Mit Gwenview importieren" funktioniert seit openSuse 42.2 nicht mehr
Wimpy *, 20.03.2017 13:34, 2 Antworten
Bisher konnte ich von Digitalkamera oder SD-Karte oder USB-Stick Fotos mit Gwenview importieren....
Ich habe eine awk Aufgabe und bekomme es nicht so Recht hin
Dennis Hamacher, 10.03.2017 18:27, 1 Antworten
Ich hoffe Ihr könnt mir dabei helfen oder mir zeigen wie der Befehl richtig geschrieben wird. Ich...
Unter Linux Open Suse Leap 42.1 einen Windows Boot/ ISO USB Stick erstellen...
Tim Koetsier, 07.03.2017 15:26, 1 Antworten
Hallo, weiß jemand wie ich oben genanntes Vorhaben in die Tat umsetzen kann ? Wäre echt dankba...
Druckertreiber installieren OpenSuse42.1
Tim Koetsier, 07.03.2017 15:22, 1 Antworten
hallo, kann mir BITTE jemand helfen ich verzweifel so langsam. Habe einen Super Toner von Canon...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] Recoll Indexirung
Alfred Zahlten, 23.03.2017 21:29
Am 23.03.2017 um 07:34 schrieb Rainer: Hallo Rainer, Recoll lief den ganzen Tag, der Grafikbildschirm hat s...
Re: [EasyLinux-Ubuntu] Backportkernel aktualisieren
Wolfgang Voelker, 23.03.2017 20:10
Hallo Andreas, wie hast du die Aktualisierung ausgeführt? Um aus den Backports etwas zu installieren (ja, d...
[EasyLinux-Ubuntu] Backportkernel aktualisieren
Andreas Klopfleisch, 23.03.2017 18:33
Hallo Liste Ich habe hier auf dem Laptop ein Debian Jessie, bedingt durch die Optimus- Grafik mit einem Ker...
Re: [EasyLinux-Ubuntu] Recoll Indexirung
Alfred Zahlten, 23.03.2017 12:35
Am 23.03.2017 um 07:34 schrieb Rainer: Hallo Rainer, erst mal Danke für die Hilfe. > Am Thu, 23 Mar 20...
Re: [EasyLinux-Ubuntu] Recoll Indexirung
Rainer, 23.03.2017 07:34
Hallo Alfred, Am Thu, 23 Mar 2017 03:39:26 +0100 schrieb Alfred Zahlten : > > die recoll Indexie...