ich kenne mich mit Expressions usw. nicht gut aus. Daher meine Frage, wie man innerhalb einer Textdatei in allen Zeilen z.B. an Stelle 12 das Zeichen ersetzen kann, wenn es sich um eine Zahl handelt? Also um es auf den Punkt zu bringen: Ersetze alle Zeichen an Stelle 12 durch ein Leerzeichen, wenn dort eine Zahl steht. Könnte mir da bitte jemand weiterhelfen?
Das erleichtert die Sache doch ungemein
Mein Vorschlag:
sed -e 's/\(^.\{11\}\)[0-9]/\1\_/' dateiname
Ein wenig erläutert: ^ vom Beginn jeder Zeile . beliebige Zeichen {11} aber genau 11-mal
die runde Klammerung ( ) um den ganzen Ausdruck sorgt dafür, daß dies der „Variablen“ \1 zugewiesen wird [0-9] nach diesen 11 Zeichen soll genau eine Ziffer kommen
wenn das alles zutrifft, ersetze den ersten regulären Ausdruck (also die ersten 11 Zeichen am Anfang) durch sich selbst, also \1
Die zweite regExp (also die Ziffer) soll durch den Unterstrich ersetzt werden.
Das wars.
Natürlich nimmst Du statt des Unterstrichs ein Leerzeichen. Habe ich jetzt nur so gemacht, weil man den Unterstrich irgendwie besser als ein Leerzeichen sieht Auch die Pluszeichen an 11. Stelle sind nur dazu da, das Zählen zu erleichtern, im Ernstfall kann da auch was andres stehen, funktioniert (hoffentlich) trotzdem immer…
Meine Testdatei: