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: Noch keine Bewertung abgegeben!
Den Beitrag bewerten: Gut / Schlecht
-
Re: awk
hha4491 (unangemeldet), Dienstag, 14. Februar 2017 16:28:49
Ein/Ausklappen

Ich meinte #,nicht +


Bewertung: Noch keine Bewertung abgegeben!
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: Noch keine Bewertung abgegeben!
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

Probleme mit der Maus
Thomas Roch, 21.02.2017 13:43, 1 Antworten
Nach 20 Jahren Windows habe ich mich zu Linux Ubuntu probeweise durchgerungen!!! Installation - k...
KWin stürzt ab seit Suse Leap 42.2
Wimpy *, 21.02.2017 09:47, 3 Antworten
OpenSuse 42.2 KDE 5.8.3 Framework 5.26.0 QT 5.6.1 Kernel 4.4.46-11-default 64-bit Open-GL 2....
Shell-Befehl zur Installation von Scanner-Treiber
Achim Zerrer, 15.02.2017 12:13, 10 Antworten
Hallo, ich habe Einen Brother Drucker mit Scanner. Nachdem ich mit Hilfe der Community den Druck...
kiwix öffnet ZIM Datei nicht
Adrian Meyer, 13.02.2017 18:23, 1 Antworten
Hi, ich nutze Zim Desktop für mein privates Wiki. Fürs Handy habe ich mir kiwix heruntergelade...
registration
Brain Stuff, 10.02.2017 16:39, 1 Antworten
Hallo, Das Capatcha auf der Registrierungsseite von linux-community ist derartig schlecht gema...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] [OT]_Laptop_wechselt_immer_wieder_die_MAC_für_WLAN
Nguyen Dong Loan, 23.02.2017 18:08
Am Donnerstag, den 23.02.2017, 17:29 +0100 schrieb Michael: Hallo Michael > Darf ich mal fragen, was der...
Re: [EasyLinux-Ubuntu] [OT]_Laptop_wechselt_immer_wieder_die_MAC_für_WLAN
Nguyen Dong Loan, 23.02.2017 18:03
Am Donnerstag, den 23.02.2017, 17:03 +0100 schrieb Uwe Herrmuth: Hallo Uwe > Was es nicht alles gibt....
Re: [EasyLinux-Ubuntu] [OT]_Laptop_wechselt_immer_wieder_die_MAC_für_WLAN
Michael, 23.02.2017 17:29
> > Nun zu Sache: > Der Netzwerkchip Intel Snowfield Peak vPro 8260NGWM ist so eingerichtet, > das...
Re: [EasyLinux-Ubuntu] [OT]_Laptop_wechselt_immer_wieder_die_MAC_für_WLAN
Uwe Herrmuth, 23.02.2017 17:03
Hallo Dong Loan, Dong Loan schrieb am 23.02.2017 um 16:37: > Der Netzwerkchip Intel Snowfield Peak vPro 8...
Re: [EasyLinux-Ubuntu] [OT]_Laptop_wechselt_immer_wieder_die_MAC_für_WLAN
Nguyen Dong Loan, 23.02.2017 16:37
Am Freitag, den 17.02.2017, 00:41 +0100 schrieb Heiko Ißleib: Hallo Heiko Gelöst ist es nicht, ich habe in...