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

Ich meinte #,nicht +


Bewertung: 188 Punkte bei 15 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: 148 Punkte bei 15 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

Knoppix-Live-CD (8.0 LU-Edition) im Uefiboot?
Thomas Weiss, 26.04.2017 20:38, 0 Antworten
Hallo, Da mein Rechner unter Windows 8.1/64Bit ein Soundproblem hat und ich abklären wollte, o...
Grub2 reparieren
Brain Stuff, 26.04.2017 02:04, 5 Antworten
Ein Windows Update hat mir Grub zerschossen ... der Computer startet nicht mehr mit Grub, sondern...
Linux open suse 2,8
Wolfgang Gerhard Zeidler, 18.04.2017 09:17, 2 Antworten
Hallo.bitte um Hilfe bei. Code fuer den Rescue-login open suse2.8 Mfg Yvo
grep und sed , gleicher Regulärer Ausdruck , sed mit falschem Ergebnis.
Josef Federl, 15.04.2017 00:23, 1 Antworten
Daten: dlfkjgkldgjldfgl55.55klsdjfl jfjfjfj8.22fdgddfg {"id":"1","name":"Phase L1","unit":"A",...
IP Cams aufzeichnen?
Bibliothek der Technischen Hochschule Mittelhessen / Giessen, 07.04.2017 09:25, 7 Antworten
Hallo, da nun des öfteren bei uns in der Nachbarschaft eingebrochen wird, würde ich gern mein...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] LM 18.1-verschwundenes ICON - Aktualisierung
Christoph Walter, 28.04.2017 10:18
Am 27.04.2017, 11:16 Uhr, schrieb Heiko Ißleib : > Am Donnerstag, 27. April 2017, 09:33:31 schrieb Christo...
Re: [EasyLinux-Ubuntu] Problem, Nervige Werbung.
Alfred Zahlten, 28.04.2017 01:33
Am 25.04.2017 um 19:50 schrieb Richard Kraut: Hallo Richard, > Am Sonntag, den 23.04.2017, 21:52 +0200 s...
Re: [EasyLinux-Ubuntu] LM 18.1-verschwundenes ICON - Aktualisierung
Heiko, 27.04.2017 11:16
Am Donnerstag, 27. April 2017, 09:33:31 schrieb Christoph Walter: > Im März hatte ich schon einmal das Pro...
[EasyLinux-Ubuntu] LM 18.1-verschwundenes ICON - Aktualisierung
Christoph Walter, 27.04.2017 09:33
Im März hatte ich schon einmal das Problem mit dem verschwundenen ICON - Aktualisierung - aus der Menueleist...
Re: [EasyLinux-Ubuntu] OT:_Office_für_Android
Carsten Franz, 26.04.2017 11:28
Hallo Michael, Textmaker kann es wohl, bei Planmaker bin ich mir mangels Datei nicht sicher. Am besten, Du...