ubuntuusers.de

Tabelle mit awk erstellen

Status: Gelöst | Ubuntu-Version: Xubuntu 13.04 (Raring Ringtail)
Antworten |

turbo112

Anmeldungsdatum:
9. Mai 2010

Beiträge: 46

Hallo zusammen,

Ich versuche aus einem Bash Script heraus eine Tabelle zu erstellen und befasse mich damit schon eine Ganze weile. Ich habe auch Lösungen gefunden, die aber alle immer nur zum Teil erfolgreich waren. Nun Habe ich eine Lösung im I-Net gefunden die so glaube ich sehr erfolgversprechend ist. -1-

Ich verstehe das Script nicht zu 100 Prozent. Ich hoffe, dass mir hier jemand weiterhelfen kann. Ich möchte den Code mal etwas zerlegen und beschreiben was ich glaube verstanden zu haben und was nicht.

1
no=`awk -F" " -v l=\`awk 'END{print NR}' sss.dat1\` '

Hier wird im ersten Teil der Gesamte Inhalt der Datei "sss.dat1" der Variablen "no" Durch den Seperator " " getrennt zugewiesen und im zweiten Teil wird in der Variable "l" die Anzahl der Zeilen hinterlegt.

1
{A[NR]=length($1)" "length($2)" "length($3)" "length($4)" "length($5)}

Hier wird im Array "A" die Länge der Einzelteile für jede Zeile gespeichert.

1
2
3
4
5
6
7
8
END{for(i=0;i<l;++i)
{split(A[i],B," ");
{if(B[1]>max1){max1=B[1]}}
{if(B[2]>max2){max2=B[2]}}
{if(B[3]>max3){max3=B[3]}}
{if(B[4]>max4){max4=B[4]}}
{if(B[5]>max5){max5=B[5]}}
}{print max1" "max2" "max3" "max4" "max5}}' sss.dat1`

Diesen Teil verstehe ich nur zum kleinen Teil, hier werden irgend welche Maximal Werte geprüft / gesetzt ?!?

1
awk -F" " -v var="$no" '{split(var,A," ")}{printf "%-"A[1]"s %-"A[2]"s %-"A[3]"s %-"A[4]"s %-"A[5]"s\n",$1,$2,$3,$4,$5}' sss.dat1

Hier wird die Ausgabe aufbereitet, aber wie genau ist mir auch nicht ganz klar.

Hier nun meine Fragen:

1. Ist es möglich die Daten anstatt aus einer Datei auch aus einem Bash-Array zu lesen und dann zu verarbeiten?

2. Wie bekomme ich eine Spalten Überschrift dort mit eingesetzt die dann auch mit der gleichen Spaltenbreite gesetzt wird?

Zum besseren Verständnis hier nochmal das ganze Script.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#!/bin/bash
no=`awk -F" " -v l=\`awk 'END{print NR}' sss.dat1\` '
{A[NR]=length($1)" "length($2)" "length($3)" "length($4)" "length($5)}
END{for(i=0;i<l;++i)
{split(A[i],B," ");
{if(B[1]>max1){max1=B[1]}}
{if(B[2]>max2){max2=B[2]}}
{if(B[3]>max3){max3=B[3]}}
{if(B[4]>max4){max4=B[4]}}
{if(B[5]>max5){max5=B[5]}}
}{print max1" "max2" "max3" "max4" "max5}}' sss.dat1`
awk -F" " -v var="$no" '{split(var,A," ")}{printf "%-"A[1]"s %-"A[2]"s %-"A[3]"s %-"A[4]"s %-"A[5]"s\n",$1,$2,$3,$4,$5}' sss.dat1

Für unterstützung wäre ich Dankbar!

-1- http://www.unix.com/shell-programming-scripting/106868-bash-scripting-generating-table-aligned-fields.html

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Hier wird die Ausgabe aufbereitet, aber wie genau ist mir auch nicht ganz klar.

Mir auch nicht ! 😕

Was ist das denn für eine blöde Puzzle-Aufgabe, dass Du uns so'n Haufen Chaos-Code vor die Nase wirfst ...? 😲
(da findet doch kein Schwein durch !)

Verrat uns doch lieber mal, wie Deine Quelldaten in "sss.dat1" aussehen, und was Du hinterher 'rausbekommen willst (am besten anhand von Beispielen). Ich habe nämlich den Verdacht, dass das recht übersichtlich ganz alleine mit awk zu machen wäre. (oder sonst einer "richtigen" Programmiersprache)

p.s.:
Die Formatieraufgabe von Deinem Link habe ich mal mit awk umgesetzt:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/usr/bin/awk -f

BEGIN	{	FS= ":";	}							# Feld-Trennzeichen

	{	txt[NR]= $0;								# speichere jede Zeile ins Array
		for (i=1; i<=NF; i++)	if (l[i] < length($i)) l[i]=length($i)	}	# bestimme die maximale Feldlänge

END	{	for (z=1; z<=NR; z++)	{						# für jede Zeile im Array:
			split (txt[z], a);						  # zerlege in Felder
			for (i=1; l[i]; i++)	printf "%-" l[i]+2 "s", a[i];		  # drucke: alle Felder formatiert
			print ""	}					}	  #	    + Zeilenwechsel

Das macht das selbe wie der ganze Code auf Deiner verlinkten Seite, nur übersichtlicher und schneller ...
Und wenn Du Überschriften haben willst, kannst Du die ja vorher als nullte Zeile einlesen. (und mit ausgeben)

pps.:
Du kannst natürlich auch einfach column benutzen, das formatiert sie Spalten auch, wenn Du vorher die Doppelpunkte in Leerzeichen umwandelst:

1
sed 's/:/ /g'  |  column -t

LG,

track

turbo112

(Themenstarter)

Anmeldungsdatum:
9. Mai 2010

Beiträge: 46

Hallo Track,
Danke für Deine Ausführungen!

track schrieb:

Hier wird die Ausgabe aufbereitet, aber wie genau ist mir auch nicht ganz klar.

Mir auch nicht ! 😕

Was ist das denn für eine blöde Puzzle-Aufgabe, dass Du uns so'n Haufen Chaos-Code vor die Nase wirfst ...? 😲
(da findet doch kein Schwein durch !)

Na ja, die Diskusion mit dem Schwein möchte ich hier und jetzt nicht führen.
Ich hatte einen Weg gesucht, die Problematik möglichst klar darzustellen. Das scheint ja gründlich nach hinten los gegangen zu sein. Das tut mir leid! Ich gelobe Besserung

Verrat uns doch lieber mal, wie Deine Quelldaten in "sss.dat1" aussehen,

Natürlich verate ich das, dass ist kein Geheimnis.

deb1h helmut 192.168.100.241 22
deb1r root 192.168.100.241 22
deb64h helmut 192.168.100.240 22
deb64r root 192.168.100.240 22
beispiel User ein.server.irgendwo 22

Als Beispiel, es kann aber recht unterschiedliche längen geben.

und was Du hinterher 'rausbekommen willst (am besten anhand von Beispielen).

1
2
3
4
5
6
Server   User   Adresse             Port
deb1h    helmut 192.168.100.241     22
deb1r    root   192.168.100.241     22
deb64h   helmut 192.168.100.240     22
deb64r   root   192.168.100.240     22
beispiel User   ein.server.irgendwo 22

So oder so ähnlich soll es dann ausgegeben werden. (Die Uberschrift sollte Fett und Untestrichen sein, aber das ist nicht so das Problem)

Ich habe nämlich den Verdacht, dass das recht übersichtlich ganz alleine mit awk zu machen wäre. (oder sonst einer "richtigen" Programmiersprache)

Damit könntest Du sicherlich recht haben, aber wie?
Einen Weg da hin hast Du ja weiter unten beschrieben, danke schon mal dafür. Ich werde mich damit gleich mal befassen. Was ich aber schon jetzt sagen kann ist, ich glaube dieses Srcript verstehe ich zu großen Teil.

p.s.:
Die Formatieraufgabe von Deinem Link habe ich mal mit awk umgesetzt:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/usr/bin/awk -f

BEGIN	{	FS= ":";	}							# Feld-Trennzeichen

	{	txt[NR]= $0;								# speichere jede Zeile ins Array
		for (i=1; i<=NF; i++)	if (l[i] < length($i)) l[i]=length($i)	}	# bestimme die maximale Feldlänge

END	{	for (z=1; z<=NR; z++)	{						# für jede Zeile im Array:
			split (txt[z], a);						  # zerlege in Felder
			for (i=1; l[i]; i++)	printf "%-" l[i]+2 "s", a[i];		  # drucke: alle Felder formatiert
			print ""	}					}	  #	    + Zeilenwechsel

Das macht das selbe wie der ganze Code auf Deiner verlinkten Seite, nur übersichtlicher und schneller ...

Ich werde es gleich (oder doch erst Morgen?!?) ausprobieren und berichten

Und wenn Du Überschriften haben willst, kannst Du die ja vorher als nullte Zeile einlesen. (und mit ausgeben)

Das ist mir nicht ganz klar, aber ich werde mich damit auseinandersetzen und es ausprobieren. Ich glaube das bekomme ich hin.

pps.:
Du kannst natürlich auch einfach column benutzen, das formatiert sie Spalten auch, wenn Du vorher die Doppelpunkte in Leerzeichen umwandelst:

1
sed 's/:/ /g'  |  column -t

LG,

OK, damit hatte ich auch schon exprementiert. Wenn ich das richtig verstanden habe, greift das nur zeilenweise. Oder?
Damit bin ich dann nicht weiter, ich mache das jetzt mit tab und das ist auch nicht so doll.

Recht herzlichen Dank für Deine vielen Hinweise!
Ich werde berichten, oder mich wieder melden wenn ich Probleme habe. Wie auch immer.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Ah, schön.

Jetzt habe ich mal mit Deinen Probedaten meinen letzten Vorschlag gefüttert:

track@lucid:~$ echo Server User Adresse Port  |  cat - sss.dat  |  column -t  |  sed '1s/.*/\x1b[1;4m&\x1b[0m/'
Server    User    Adresse              Port
deb1h     helmut  192.168.100.241      22
deb1r     root    192.168.100.241      22
deb64h    helmut  192.168.100.240      22
deb64r    root    192.168.100.240      22
beispiel  User    ein.server.irgendwo  22 

Die Überschrift schicke ich einfach mit echo auf den Weg, cat führt diesen Text mit der Datei zusammen, und column formatiert es.
Als letztes füge ich mit sed noch vor und nach der 1. Zeile die ANSI-Codes für fett und unterstrichen ein - fertig. ☺
(umgekehrt geht es nicht, da kommt column durcheinander. Wenn ich die Steuercodes schon beim echo einbaue, zählt column die als Zeichen mit)

Oder geht es Dir mehr ums Programmieren selber ? -dann ist die awk-Geschichte natürlich ergiebiger.

LG,

track

turbo112

(Themenstarter)

Anmeldungsdatum:
9. Mai 2010

Beiträge: 46

Hallo

track schrieb:

Ah, schön.

Jetzt habe ich mal mit Deinen Probedaten meinen letzten Vorschlag gefüttert:

track@lucid:~$ echo Server User Adresse Port  |  cat - sss.dat  |  column -t  |  sed '1s/.*/\x1b[1;4m&\x1b[0m/'
Server    User    Adresse              Port
deb1h     helmut  192.168.100.241      22
deb1r     root    192.168.100.241      22
deb64h    helmut  192.168.100.240      22
deb64r    root    192.168.100.240      22
beispiel  User    ein.server.irgendwo  22 

Die Überschrift schicke ich einfach mit echo auf den Weg, cat führt diesen Text mit der Datei zusammen, und column formatiert es.

Das wäre die Lösung aber leider muss das bei mir noch durch eine While Schleife und damit greift dann der Column Befehl nur pro Zeile, schade. Das heiß aber, dass ich mich mit der AWK Lösung auseinander setzen muss. Das habe ich heute abend auch schon versucht aber ich bin noch zu keinem wirklichen Ziel gekommen, was aber auch an der knappen Zeit liegen wird.

Als letztes füge ich mit sed noch vor und nach der 1. Zeile die ANSI-Codes für fett und unterstrichen ein - fertig. ☺

Das ist ja sonder super, dass muss ich mir einmal genau zerlegen um es zu verstehen. So etwas habe ich schon einige male gesucht. Danke dafür.

(umgekehrt geht es nicht, da kommt column durcheinander. Wenn ich die Steuercodes schon beim echo einbaue, zählt column die als Zeichen mit)

Oder geht es Dir mehr ums Programmieren selber ? -dann ist die awk-Geschichte natürlich ergiebiger.

Eigentlich geht es ums Programieren, und deswegen möchte ich auch mit Deinen Hiweisen selbst eine Lösung finden. Vermutlich muss ich mir noch mal einige Grundlagen in meinem Ditchen genauer ansehen, dann, so glaube ich, bekomme ich die AWK-Lösung wohl in mein Script eingebaut. Ich werde das aber erst am Wochenende schaffen.
Ich werde mich in jedem Fall melden, entweder um Hilfe bitten oder das Ergebnis presentieren.
Herzlichen Dank für Deine Unterstützung!

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Wenn Du Dich in awk einlesen willst, dann kann ich Dir für den Einstieg die Einführung empfehlen, und für die Feinheiten natürlich man gawk.

LG,

track

turbo112

(Themenstarter)

Anmeldungsdatum:
9. Mai 2010

Beiträge: 46

Hallo track,
erstmal danke für die Links!

Aber ich habe mich gestern Abend irgend wie fest gelaufen, ich komme nicht mehr weiter!
So erhebe ich die Daten:

1
2
3
4
5
6
7
while read line ; do
 temp="$(echo $line |grep $2)"
 if [ -n "$temp" ]; then #
    zeile[$i]="$(echo $i $temp |tr " " '\t')"
                  i=$(($i+1))
 fi
done < $WEG/sss.dat


Ok, auf das "tr" könnte ich verzichten, aber es sollte eigentlich nicht stören, oder?

Das heißt, die auszugebenden Daten stehen mir im Array "zeile[*]" zur Verfügung. Nun dachte ich, ich muss nur das AWK Script von Oben in das bestehnde Script einfügen. Und zwar in der Form:

1
2
3
4
awk -v var="${zeile[*]}"
'
Hier dann das Script von oben
'


Das habe ich mit und ohne geschweiften Klammern versucht, es funktioniert in keinem Fall. Irgendwo mache ich da einen generellen Denkfehler, nur wo. Ich habe gestern schon mal im I-Net geforscht bin aber zu keinem Lösungsansatz gekommen.
Was mache ich nur falsch, hast Du eine Idee?

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Das Problem ist: Du müsstest Deine Daten jetzt irgendwie über eine Pipe (!) an den awk- Befehl verfüttern ...
(das ginge z.B., indem Du ihn am Ende Deiner Zeile 7: done < $WEG/sss.dat | awk .... über eine Pipe anhängst)
((dann könntest Du eigentlich auch genausogut die Sortierpipe von oben dort anhängen: | column -t | sed '1s/.*/\x1b[1;4m&\x1b[0m/' ))

Ist aber ziemlich umständlich, denn Du hast den Aufwand eines Mischskriptes, nur um da noch die Zeilennummern oder so vorne anzufügen.
Das kann awk auch ganz bequem selber. (ich kapiere nicht genau, was Du da mit dem $temp machst, aber die Zeilennummer führt awk sowieso, in der Variablen NR !)

Wenn Du mir mal in "Prosa" verrätst, was das Shellskript machen soll, kann ich Dir einen Vorschlag machen, wie man das auch mit awk alleine hinkriegt.
(kleiner Hinweis: awk kann selber intern Shellbefehle aufrufen: system("Shellbefehl") !)

LG,

track

turbo112

(Themenstarter)

Anmeldungsdatum:
9. Mai 2010

Beiträge: 46

Hallo Track,
track schrieb:

Das Problem ist: Du müsstest Deine Daten jetzt irgendwie über eine Pipe (!) an den awk- Befehl verfüttern ...
(das ginge z.B., indem Du ihn am Ende Deiner Zeile 7: done < $WEG/sss.dat | awk .... über eine Pipe anhängst)

Das Sagst Du so einfach, ist es für mich aber garnicht. ☹
Ich würde es aber gerne begreifen, oder einen Weg finden um mir das anzueignen.

((dann könntest Du eigentlich auch genausogut die Sortierpipe von oben dort anhängen: | column -t | sed '1s/.*/\x1b[1;4m&\x1b[0m/' ))

Aber dieser Tip mit dem aus den aus dem Absatz oben drüber, also:

1
2
done < $WEG/sss.dat | awk ....
| column -t | sed '1s/.*/\x1b[1;4m&\x1b[0m/'

haben zu folgendem geführt:

1
2
3
4
5
6
7
8
zeile[0]="Nr: Rechner User IP  Port"
j=0
echo
while (( $j <= $i )) ; do 
  echo "${zeile[$j]}"
  j=$(($j+1))
# Tabellenformatierung
done | column -t | sed '1s/.*/\x1b[1;4m&\x1b[0m/'

Ich wäre niemals auf die Idee gekommen das so zu versuchen! Denn ich hatte gedacht, wenn dass echo gelaufen ist komme ich an die Ausgabe nicht mehr dran. Das das noch im Anschluß an die while mit dem Pipe geht war mir nicht klar. Aber klasse, dann habe ich wieder etwas gelernt. Vor so einem Problem habe ich schon des öffteren gestanden und habe die größten "Klimmzüge" veranstaltet, Danke dafür!!
Eine Ausgabe sieht nun so aus:
(Die Formatierung der ersten Zeile lässt sich hier leider nicht darstellen, aber es funktioniert!)

Nr:  Rechner  User    IP               Port
1    deb1h    helmut  192.168.100.241  22
2    deb1r    root    192.168.100.241  22
3    deb64h   helmut  192.168.100.240  22
4    deb64r   root    192.168.100.240  22

Ist aber ziemlich umständlich, denn Du hast den Aufwand eines Mischskriptes, nur um da noch die Zeilennummern oder so vorne anzufügen.

Damit hast Du ausnahmslos recht! Ich mache relativ viel in PHP, und da ist es auch immer so ein Hühnerkram, PHP, HTML, JAVA Script usw. , dass nervt auch dort! Die Scripte sind einfach besser zu pflegen wenn sie nicht so viel Mischkram haben!!

Das kann awk auch ganz bequem selber. (ich kapiere nicht genau, was Du da mit dem $temp machst, aber die Zeilennummer führt awk sowieso, in der Variablen NR !)

Ich habe mir mal ein Buch zu SED & AWK bestellt, ich habe immer gerne etwas in der Hand. Bin eben doch schon etwas älter. 😉
Thema $temp:
Das ist, für mich, eigentlich logisch. Ich schreibe immer eine Zeile in die $temp, dann schaue ich, "grep $2",ob etwas von meinem Suchkriterium aus dem Parameter in der $temp steht, wenn ja, wird sie gesetzt, wenn nein dann nicht. Ist die $temp gefüllt, wird der Inhalt in das Array zeile[$i] geschrieben und meine Auswahl ist fertig.
Das geht bestimmt einfacher, aber so habe ich es mir erarbeitet und es funktioniert.

Wenn Du mir mal in "Prosa" verrätst, was das Shellskript machen soll, kann ich Dir einen Vorschlag machen, wie man das auch mit awk alleine hinkriegt.

Das würde mich sehr interessieren!
Und nun die Scriptbeschreibung in "Prosa", dass fällt mir immer sehr schwer, aber ich versuche es.
Ich habe hier einen kleinen "Serverzoo" zum testen. Wenn ich daran dann teste, habe ich oft sehr viele Konsolenfenster (ssh) offen und konnte dann nie unterscheiden welches Fenster was ist (in der Taskleiste). Daraus ist die Idee entstanden, den Titel der Fenster so zu verändern, dass ich immer sehen kann was was ist. Na ja, und dabei ist dann die Idee enstanden das ganze noch so zu vereinfachen das ich das ganze auch noch mit "Shortcuts" aufrufen kann. Dann kamen noch Ideen mit der Datendatei, dann mit der Eingabe von Daten... usw.

Ich muss dazu sagen, dass dieses mein erstes "gößeres" Projekt in Bash ist, welches dann aus meiner Sicht zu 90% das tut was es soll. Ich habe an dieser Idee schon öffter gesesses und immer wieder abgebrocche, weil ich nicht weiter kam. Beim Umbau meines Desktops habe ich mich wieder geärgert, dass ich wieder so viele Starter zu den Servern anlegen musste die mir dann den Titel in der Konsole geändert haben. Also habe ich wieder damit angefangen und bin aus meiner Sicht recht weit gekommen.
Aber, wie so oft, der Teufel liegt im Detail und das versuche ich gerade zu lösen.
Ich habe das Script mal komplett in den Anhang gelegt, vieleicht hilft Dir das ja.

Für alle die sich das Script sonst noch ziehen, es hat noch einige Fehler! Besonders in der Dateneingabe. Da bin ich noch dran.

(kleiner Hinweis: awk kann selber intern Shellbefehle aufrufen: system("Shellbefehl") !)

Das habe ich schon irgendwo gelesen, habe es aber noch nicht probiert. Ich werde es aber mal testen, danke!
Auch noch mal herzlichen Dank für Deine Unterstützung und Deine Geduld!!!

sss.sh.tar.gz (3.9 KiB)
SSH Helferlein
Download sss.sh.tar.gz

turbo112

(Themenstarter)

Anmeldungsdatum:
9. Mai 2010

Beiträge: 46

Hallo Track,
ich zitiere mich mal selbst. 😉

turbo112 schrieb:

Hallo Track,
track schrieb: Aber dieser Tip mit dem aus den aus dem Absatz oben drüber, also:

1
2
done < $WEG/sss.dat | awk ....
| column -t | sed '1s/.*/\x1b[1;4m&\x1b[0m/'

haben zu folgendem geführt:

1
2
3
4
5
6
7
8
zeile[0]="Nr: Rechner User IP  Port"
j=0
echo
while (( $j <= $i )) ; do 
  echo "${zeile[$j]}"
  j=$(($j+1))
# Tabellenformatierung
done | column -t | sed '1s/.*/\x1b[1;4m&\x1b[0m/'

OK, dass funktioniert ja sehr gut wie ich bereits geschrieben hatte.
Wenn ich nun aber ,so wie von Dir angedacht folgendes mache:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
while read line ; do
      if [ "$i" = "0" ] ; then
         zeile[$i]="Nr: Rechner User IP  Port"
         echo "${zeile[$i]}"
         i=$(($i+1))
         zeile[$i]="$(echo $i $line)"
         echo "${zeile[$i]}"
         i=$(($i+1))         
      else
         zeile[$i]="$(echo $i $line)"
         echo "${zeile[$i]}"
         i=$(($i+1))
      fi
# Tabellenformatierung
done < $WEG/sss.dat | column -t | sed '1s/.*/\x1b[1;4m&\x1b[0m/'

Geht das zum Teil schief. Zwar wird die Liste noch brav ausgegeben, aber das Array zeile[*] ist dann leer. Warum das so ist, ist mir ein Rätzel. Ich muß erst mit einer While Schleife Die Daten aus der Datei lesen und dann die Daten mit einer zweiten while Schleife (die von oben) ausgeben. Dann kann ich auch auf das Array zugreifen.

Wenn Du mir mal in "Prosa" verrätst, was das Shellskript machen soll, kann ich Dir einen Vorschlag machen, wie man das auch mit awk alleine hinkriegt.

Das würde mich sehr interessieren!

Das Intresse besteht weiterhin, wenn es auch nur mal ein kleines Beispiel ist. So nach dem Mott das war es in "Bash" und so könnte es in "AWK" aussehen. Das wäre Toll!!

Ich habe das Script mal komplett in den Anhang gelegt, vieleicht hilft Dir das ja.

Für alle die sich das Script sonst noch ziehen, es hat noch einige Fehler! Besonders in der Dateneingabe. Da bin ich noch dran.

Ich hänge es nochmal an, die Fehler sollten bereinigt sein.

Da das Problem ja eigentlich gelöst ist, wenn auch nicht mit AWK werde ich das Ganze auch auf "gelöst" setzen

sss.sh.tar.gz (4.2 KiB)
SSH Helferlein
Download sss.sh.tar.gz
Antworten |