Bosi Geschrieben 21. Juni 2005 Teilen Geschrieben 21. Juni 2005 Hi, Ich habe ne programmierfrage. ich habe eine Datei wo z.b dies drinsteht: hallo.qotxx ich würde gern die letzten beiden buchstaben ermitteln also z.b. hier "xx". der Inhalt der datei hat imemr die gleiche form: *.qot* mi interessieren also genau die buchstaben nach qot. hat einer eine idee wie man dies mit einem bashprogramm oder awkprogramm lösen kann? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 21. Juni 2005 Teilen Geschrieben 21. Juni 2005 Das würde z.B. damit gehen: echo "Hallo Welt" | rev | cut -c-2 | rev Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bosi Geschrieben 21. Juni 2005 Autor Teilen Geschrieben 21. Juni 2005 danke schön. den befehl rev kannte ich noch gar nicht. aber damit kann ich zumindest dann was zusammenbasteln was die felder ausgibt die ich brauche auch bei unterschiedlicher Länge. danke nochmal Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
olqs Geschrieben 21. Juni 2005 Teilen Geschrieben 21. Juni 2005 oder mit sed echo "Hallo Welt" | sed 's/.*\(..\)/\1/' Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bosi Geschrieben 21. Juni 2005 Autor Teilen Geschrieben 21. Juni 2005 da habsch gleich mal ne Frage. sed und awk ist doch was ähnliches oder sehe ich das vollkommen falsch? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
olqs Geschrieben 21. Juni 2005 Teilen Geschrieben 21. Juni 2005 Beides kann man dazu benutzen Text zu formatieren und zu bearbeiten. sed mit Hilfe von Regulären Ausdrücken awk mit seiner eigenen Skriptsprache. Aber um mehr drüber sagen zu können fehlt mir das Wissen über awk. Wollte mich da immer schon mal einlesen, aber hab keine Zeit dazu. Hab bisher alles mit sed+bash gelöst, falls das nicht gereicht hat kam perl zur Hilfe. Falls du ne nette sed Hilfe brauchst, ich finde die Seite sehr übersichtlich: http://main.rtfiber.com.tw/~changyj/sed/ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bosi Geschrieben 21. Juni 2005 Autor Teilen Geschrieben 21. Juni 2005 hey danke für den lnk. werdsch mir mal genauer anschauen wenn i genug zeit habe. ich habe bisher solche sachen mit awk gelöst und das werd ich nun auch wieder machen ... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 21. Juni 2005 Teilen Geschrieben 21. Juni 2005 Nur als kleine Anmerkung: cut -c schneidet am Zeichen, nicht an Feldern. Funktioniert also mit unterschiedlicher Länge ebenfalls. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bosi Geschrieben 21. Juni 2005 Autor Teilen Geschrieben 21. Juni 2005 ach so? und wie erkennt der an welchem Zeichen er schneiden soll? der soll ja im prinzip am ab dem .qot sozusagen "abschneiden" unjd mit -2 sagt man ja das er die ersten zwei zeichen abschneiden soll nach rev oder versteh i das falsch? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 21. Juni 2005 Teilen Geschrieben 21. Juni 2005 Gar nicht. -c geht auf einzelne Zeichen, da wird nichts geschnitten (das mit den Feldern war -f). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Monty82 Geschrieben 21. Juni 2005 Teilen Geschrieben 21. Juni 2005 Und wenn Du doch sed benutzen willst, sollte es so gehen... sed -r 's/^.*\.qot([A-Za-z]{2}).*$/\1/' testdatei.txt Ansonsten bitte ein paar mehr infos zum Aufbau der Dateien, z.B. mehrere Zeilen pro Datei?, wie viele Dateien?, Dateien per Wildcard selektierbar?... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schlaubi Geschrieben 21. Juni 2005 Teilen Geschrieben 21. Juni 2005 Warum sed und awk benutzen, wenn das die Bash sowieso kann? *grins* fn=hallo.qotxx length=${#fn} lminus2=$(($lenght - 2)) fn_without2=${fn:0:lminus2} last2chars=${fn:lminus2:length} echo $fn echo $fn_without2 echo $last2 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bosi Geschrieben 21. Juni 2005 Autor Teilen Geschrieben 21. Juni 2005 also ich habe es jetzt über awk gelöst. ist zwar extrem unelegant und umständlich programmiert da hinter "qot" nur maximal 5 zeichen stehen dürfen, ist aber egal da es eigentlich normalerweise nie mehr als 2 oder drei zeichen sind zumal man das schnell und einfach erhöhen kann. naja ahuptsache es funktioniert als detailliertere info: diese Dateien *.qot* sind in einem verzeichnis und es können eine oder mehrere Dateien sein und i muß halt je nachdem viele Dateien es sind die endungen haben. if [ `ls $1.qot* |wc -l` == 0 ] then echo -e "Es wurden keine Dateien gefunden" else ls $1.qot* > qquot1 fi cat qquot1 |rev |gawk 'BEGIN {FS=""}{if($5 == "."){print $1}; if($6 == "."){print $2$1};if($7 == "."){print $3$2$1};if($8 == "."){print $4$3$2$1};if($9 == "."){print $5$4$3$2$1}}' Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schlaubi Geschrieben 21. Juni 2005 Teilen Geschrieben 21. Juni 2005 Warum benutzt du dann nicht eine unserer Möglichkeiten? *grübel* Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
olqs Geschrieben 21. Juni 2005 Teilen Geschrieben 21. Juni 2005 Wieso einfach wenns umständlich auch geht *fg* Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bosi Geschrieben 22. Juni 2005 Autor Teilen Geschrieben 22. Juni 2005 naja ich bin noch ni so nen programmierguru sage ich mal und da habsch dann nachdem hinweis mit "rev" einfach versucht mir was zusammen zubasteln und bin stolz das das was ich da gebastelt habe funktioniert. Danke trotzdem für eure Hilfen. werde auch die anderen Lösungen testen und schauen und verstehen wie die funktionieren und vielleicht schaff i es ja auch ma zu testen und rauszufinden welche lösung am schnellsten funktioniert in der Abarbeitung. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schlaubi Geschrieben 22. Juni 2005 Teilen Geschrieben 22. Juni 2005 Gut, dann mal viel Spaß beim Dazulernen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.