Hallo Bonkers,
nur eine Ziffer
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:
asdfrghjki+12hg+
adh46jghdt+3cg+
fsahtX6543+1phfr+
fuzmhvzuzm+h9gfhj-
fghjhhkuiu+hjizh-
ghghghghhg+1+
abcdefghij+9mnop123u+
fsahtXasb3012phfr+
Mein Aufruf erzeugt daraus sowas:
asdfrghjki+\_2hg+
adh46jghdt+\_cg+
fsahtX6543+\_phfr+
fuzmhvzuzm+h9gfhj-
fghjhhkuiu+hjizh-
ghghghghhg+\_+
abcdefghij+\_mnop123u+
fsahtXasb30\_2phfr+
Ich hoffe keinen Sonderfall übersehen zu haben. Vielleicht läßt es sich auch einfacher lösen. Also Spezialisten, an die Front
Viele Grüße
Marvin