Am Donnerstag 10 September 2009 15:42:17 schrieb Joerg Thuemmler:
Al Bogner schrieb:
Ich habe eine sehr lange Text-Variable (Text aus mehreren Seiten). Darin kommt an unregelmäßiger Stelle, aber ziemlich gegen Ende eine bestimmte Zeichenkombination von "|center=4,3 |" (ohne "). 4,3 ist variabel, der Rest konstant. Grenzen sind also |. Die Stelle ist aber nicht konstant, daher ist cut nicht möglich.
Wie bestimmte ich diesen Teil zB mit sed in einem bash-Skript?
Al
Hi,
sed ist ja eher zum Bearbeiten... ich würde was mit grep/egrep suchen... Ist es Fließtext (keine Linefeeds)?
Ursprünglich nicht sicher, ich mach aber schon ein grep "center=" Das sollte eindeutig sein, wenn ich nicht einen Sonderfall übersehen habe. Es bleibt also genau 1 Zeile über.
Dann ist es evt. sinnvoll, vorher mit tr oder sed Zeilenvorschübe aus was anderem zu machen, dann kann man mit grep auch umliegende Textstücke gut mitnehmen.
Am besten, du postest mal einen Schnipsel und schreibst genau, was Du mit der Stelle oder ihrer Umgebung vorhast.
Ergebnis soll im Beispiel 4,3 sein. Achtung es können auch Dezimalstellen (mit Dezimalpunkt vorkommen), also zB 4.2,3.756 Das darum herum muss egal sein. Es geht um die Suche wo "center=" ist. Eventuell könnte man das x. Vorkommen von | berechnen und dann mit cut -f - d"|" den Bereichen zwischen den | bestimmen und dann weiter mit cuf -f -d"=". Die Sache ist nicht zeitikritisch. Es gibt da sicher auch elegante Lösungen, aber das ist nicht so wichtig. Hauptsache es funktioniert. Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org