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: 207 Punkte bei 36 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: awk
hha4491 (unangemeldet), Dienstag, 14. Februar 2017 16:28:49
Ein/Ausklappen

Ich meinte #,nicht +


Bewertung: 215 Punkte bei 31 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: 195 Punkte bei 30 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

Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 3 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...
Backup mit KUP unter Suse 42.3
Horst Schwarz, 24.09.2017 13:16, 3 Antworten
Ich möchte auch wieder unter Suse 42.3 mit Kup meine Backup durchführen. Eine Installationsmöglic...
kein foto, etc. upload möglich, wo liegt mein fehler?
kerstin brums, 17.09.2017 22:08, 5 Antworten
moin, zum erstellen einer einfachen wordpress website kann ich keine fotos uploaden. vom rechne...
Arch Linux Netzwerkkonfigurationen
Franziska Schley, 15.09.2017 18:04, 0 Antworten
Moin liebe Linux community, ich habe momentan Probleme mit der Einstellung des Lan/Wlan in Arc...

Stellenmarkt

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] Ubuntu 17.10 Neue (Text)Datei anlegen
Uwe Herrmuth, 23.10.2017 09:28
Hallo Gerd, Gerd schrieb am 22.10.2017 um 15:51: > das Subject sag schon alles. > Wie legt man in d...
Re: [EasyLinux-Ubuntu] Ubuntu 17.10 Synaptic nicht startbar
Matthias, 22.10.2017 22:42
Am Sonntag, 22. Oktober 2017, 18:23:19 CEST schrieb Gerd Pfannenstiel: > Hallo > > Auch hier sa...
Re: [EasyLinux-Ubuntu] Ubuntu 17.10 Neue (Text)Datei anlegen
Karl-Heinz, 22.10.2017 20:50
Am Sun, 22 Oct 2017 15:51:13 +0200 (CEST) schrieb Gerd Pfannenstiel : Hallo Gerd, hört sich nach Nautilus...
Re: [EasyLinux-Ubuntu] Ubuntu 17.10 Neue (Text)Datei anlegen
Heiko, 22.10.2017 19:31
Am Sonntag, 22. Oktober 2017, 15:51:13 schrieb Gerd Pfannenstiel: Hallo, > > das Subject sag schon...
[EasyLinux-Ubuntu] Ubuntu 17.10 Synaptic nicht startbar
Gerd Pfannenstiel, 22.10.2017 18:23
Hallo Auch hier sagt Subject alles. Ich habe, in Erinnerung an einen Bekomme es aber nicht gestartet.Ich hab...