![]() |
|
|
Google unix.com
|
|||||||
| Foren | Registrieren | Forum-Regeln | Links | Alben | FAQ | Benutzerliste | Kalender | Suche | Die heutige Beiträge | Alle Foren als gelesen markieren |
| UNIX for Dummies Questions & Answers Wenn Sie nicht sicher sind, wo Sie eine UNIX-oder Linux-Frage, post it here. Alle UNIX-und Linux-Anfänger willkommen! |
Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
|
||||
| Faden | Thread Starter | Forum | Antworten | Last Post |
| Sehr dringend: - Wie zu vergleichen String mit if-Anweisung | jisha | Shell Programmierung und Scripting | 1 | 01-14-2008 03:41 AM |
| while read-Schleife w / eine verschachtelte if-Anweisung - nicht behandeln jeden Eintrag einzeln | littlefrog | Shell Programmierung und Scripting | 7 | 12-11-2007 09:49 PM |
| Bei loop-Anweisung - Fang Fehler | lumdev | Shell Programmierung und Scripting | 4 | 09-20-2007 08:50 AM |
| if-Anweisung in einer while-Schleife | bobo | UNIX for Dummies Questions & Answers | 2 | 11-07-2006 12:38 PM |
| Hilfe, wenn Schleife (String-Vergleich) | psynaps3 | Shell Programmierung und Scripting | 4 | 07-07-2006 03:36 AM |
![]() |
|
|
LinkBack | Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
|
|
||||
|
if-Anweisung in for-Schleife eines Strings
Ich bin versucht, eine Zeichenkette in awk und Schleife durch, und dann für jedes Vorkommen eines bestimmten Charakter eine Aktion. In diesem Fall, zum Beispiel, echo 1 für jedes Zeichen der Zeit r ist in der Zeichenkette. Außer ich kann es nicht mehr zu arbeiten. Könnte jemand bitte sagen Sie mir, warum?
echo $ string | awk '( for (i \u003d 1; i <\u003d length ($ 0); i + +) tun if (substr ($ 0, I, 1) \u003d\u003d "r") echo "1" fi getan ) ' |
|
||||
|
Vielen Dank für Ihre Antwort, aber ich will es zu Schleife durch den String und dann eine Aktion für jedes Auftreten von r, nicht nur einmal. zB. "Rover" wieder 11 in diesem Beispiel, denn es sind zwei R's in it.
Ich habe versucht, Ihre Code, damit es etwa so aussieht: echo $ string | awk '( for (i \u003d 1; i <\u003d length ($ 0); i + +) tun if [[(substr ($ 0, I, 1) \u003d\u003d * r *)]], dann echo "1" fi; getan ) ' Sie analysieren Fehler, sondern der ganzen Ort: awk: cmd. line: 4: if [[(substr ($ 0, I, 1) \u003d\u003d * r *)]], dann awk: cmd. line: 4: ^ Parser-Fehler awk: cmd. line: 4: if [[(substr ($ 0, I, 1) \u003d\u003d * r *)]], dann awk: cmd. line: 4: ^ Parser-Fehler awk: cmd. line: 4: if [[(substr ($ 0, I, 1) \u003d\u003d * r *)]], dann awk: cmd. line: 4: ^ Parser-Fehler Noch mehr Ideen? |
|
||||
|
Zitat:
Unter Berücksichtigung, möchte ich sagen, dass die oben möglicherweise nicht das Problem lösen, OP hat. Er ist auf der Suche nach nicht. des Auftretens eines Zeichens in einer Zeichenkette. Und der obige Befehl wird die Ausgabe wie immer 1, wenn es sich um ein oder mehrere Vorkommen von "r" Bitte korrigieren Sie mich, wenn ich mich irre Gaurav |
|
|||||
|
Zitat:
Guten Fang. |
![]() |
| Lesezeichen |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|