mccab99
08-03-2005, 22:14
Guten Abend,
Ich habe wahrscheinlich in google nicht die richtigen Suchbegriffe eingegeben und bin völliger Neuling in der Shell-Programmierung.
Ich möchte einen String bestehend aus jeweils drei Zeichen getrennt von einen Leerzeichen mithilfe der Shell in ein Array einlesen, wobei jedes Element des Arrays eine Dreierbuchstabengruppe enthalten soll:
QUERY_STRING="abc ngf gtz htm" (z.B.)
Dabei kann der String eine unterschiedliche Anzahl von Dreier-Buchstabengruppen oder nichts enthalten.
Man müsste also eine Schleife programmieren, die nur so oft läuft, wie Buchstabengruppen vorhanden sind und das Array füllt.
Meine Idee:
Schleifenanfang, wahrscheinlich WHILE:
Prüfung, ob QUERY_STRING Zeichen enthält
Die erste Buchstabengruppe erhalte ich mit:
GRUPPE[$i]=$(echo ${QUERY_STRING} | cut -d' ' -f1 | cut -d'=' -f2)
und müsste danach QUERY_STRING vorne um 4 Zeichen kürzen
$i inkrementieren
und zurück zum Schleifenanfang
Ich finde aber auf Teufel komm raus heute keine Shell-Funktion, die eine Kürzung von QUERY_STRING erlaubt.
Fragen:
Ist der Ansatz generell ok, oder geht es einfacher?
Wenn der Ansatz ok ist, dann:
Wie kann ich prüfen, ob eine Zeichenkette Zeichen enthält?
Wie kann ich QUERY_STRING vorne um n Zeichen kürzen?
Gruß,
Maik
Ich habe wahrscheinlich in google nicht die richtigen Suchbegriffe eingegeben und bin völliger Neuling in der Shell-Programmierung.
Ich möchte einen String bestehend aus jeweils drei Zeichen getrennt von einen Leerzeichen mithilfe der Shell in ein Array einlesen, wobei jedes Element des Arrays eine Dreierbuchstabengruppe enthalten soll:
QUERY_STRING="abc ngf gtz htm" (z.B.)
Dabei kann der String eine unterschiedliche Anzahl von Dreier-Buchstabengruppen oder nichts enthalten.
Man müsste also eine Schleife programmieren, die nur so oft läuft, wie Buchstabengruppen vorhanden sind und das Array füllt.
Meine Idee:
Schleifenanfang, wahrscheinlich WHILE:
Prüfung, ob QUERY_STRING Zeichen enthält
Die erste Buchstabengruppe erhalte ich mit:
GRUPPE[$i]=$(echo ${QUERY_STRING} | cut -d' ' -f1 | cut -d'=' -f2)
und müsste danach QUERY_STRING vorne um 4 Zeichen kürzen
$i inkrementieren
und zurück zum Schleifenanfang
Ich finde aber auf Teufel komm raus heute keine Shell-Funktion, die eine Kürzung von QUERY_STRING erlaubt.
Fragen:
Ist der Ansatz generell ok, oder geht es einfacher?
Wenn der Ansatz ok ist, dann:
Wie kann ich prüfen, ob eine Zeichenkette Zeichen enthält?
Wie kann ich QUERY_STRING vorne um n Zeichen kürzen?
Gruß,
Maik