Schrift
[thread]1046[/thread]

awk oder gibt es eine andere, schnelle Loesung?



<< >> 7 Einträge, 1 Seite
Neal_the_real
 2006-04-07 17:27
#10650 #10650
User since
2006-02-21
21 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo zusammen,

ich wuerde gerne wissen ob ihr eine elegante loesung fuer dieses Problem habt. Und zwar habe ich eine datei die mehrere felder hat (mit leerzeichen von einander getrennt).

Ich moechte gerne alles ausgeben ausser Feld 6. Erschwerend kommt jetzt noch hinzu das die Anzahl der Felder sich aendern kann. Spantan ist mir jetzt awk eingefallen um das Problem zu loesen aber ich weiss nicht genau wie. Im Prinzip moechte ich gerne so etwas wie das hier. Aber ich kenne die syntax nicht und ich weiss auch nicht ob das awk kann.
Code: (dl )
cat datei.txt  | awk '{print $1 .. $5, $7 .. $NF}'

Oder hat vielleicht jemand ne bessere Loesung?

Am Schluss muss ich mir halt dann doch ein kleines Perlscript schreiben das fuer mich erledigt.
--
Gruss Neal

Hier koennte ein schlauer Spruch stehen!
betterworld
 2006-04-07 17:45
#10651 #10651
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Vielleicht ja so:
Code: (dl )
(< datei.txt read A B C D E F G; echo "$A $B $C $D $E $G" )
Neal_the_real
 2006-04-07 18:04
#10652 #10652
User since
2006-02-21
21 Artikel
BenutzerIn
[Homepage] [default_avatar]
Naja nicht so ganz. Ich weiss ja nicht wieviele variable ich benutzen muss. Es koennen bis zu 1000 werden. Es koennen aber auch nur 20 sein. Das will ich halt irgendwie einfacher haben als alles hinzutippen.
--
Gruss Neal

Hier koennte ein schlauer Spruch stehen!
betterworld
 2006-04-07 18:07
#10653 #10653
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
[quote=Neal_the_real,07.04.2006, 16:04]Naja nicht so ganz. Ich weiss ja nicht wieviele variable ich benutzen muss. Es koennen bis zu 1000 werden. Es koennen aber auch nur 20 sein. Das will ich halt irgendwie einfacher haben als alles hinzutippen.[/quote]
Du sagtest doch, dass nur das sechste Feld nicht ausgegeben werden muss. Und alles, was nach dem sechsten Feld kommt, wird in G landen. Selbst wenn es 2000 Felder sind.
Neal_the_real
 2006-04-07 18:18
#10654 #10654
User since
2006-02-21
21 Artikel
BenutzerIn
[Homepage] [default_avatar]
Stimmt du hast recht.

Jetzt ist aber noch das problem das er mir nur die erste Zeile ausgibt und nicht die ganze Datei. Gibts da noch ne Loesung?

wc -l ObjectEngine.log
81609 ObjectEngine.log

setup@10.10.10.15:/var/log/USFlog$ ( <ObjectEngine.log read A B C D E F G; echo "$A $B $C $D $E $G" )
1142526153 Mar 16 17:22:33 10.10.4.3 /home/treuss/apache/perlmod/USF/MANAGER/FundManager.pm 250 W = no search-parameter is matching
setup@10.10.10.15:/var/log/USFlog$
--
Gruss Neal

Hier koennte ein schlauer Spruch stehen!
betterworld
 2006-04-07 18:30
#10655 #10655
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
[quote=Neal_the_real,07.04.2006, 16:18]Jetzt ist aber noch das problem das er mir nur die erste Zeile ausgibt und nicht die ganze Datei. Gibts da noch ne Loesung?[/quote]
Ja. Loesung=Schleife.

Aber eigentlich weiß ich auch nicht so ganz, warum Du die awk-Loesung ablehnst. Schließlich funktioniert sie, und langsam ist sie bestimmt auch nicht gerade. (Abgesehen davon, dass Du einen useless use of cat hast. Ersetze "cat datei.txt |" einfach durch "<datei.txt")\n\n

<!--EDIT|betterworld|1144420390-->
Relais
 2006-04-07 22:49
#10656 #10656
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ist
Code: (dl )
perl -ane 'splice @F, 5, 1; print "@F\n";'
zu langsam?

perlrun
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
<< >> 7 Einträge, 1 Seite



View all threads created 2006-04-07 17:27.