Zum Inhalt springen

Letzten zwei Buchstaben ermitteln


Bosi

Empfohlene Beiträge

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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/

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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}}'

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...