Zahl innerhalb eines Dateinamens auslesen

N

nupfel

Grünschnabel
Hallo,

ich habe eine große Anzahl an Dateien mit konstantem Dateinamen + einer Zahl, allerdings sind sie nicht fortlaufend nummeriert, also z.B.
Datei_13.abc
Datei_36.abc
Datei_543.abc
Ich möchte nun die Zahl in jedem Dateinamen um +x erhöhen, also dann z.B. mit +2
Datei_15.abc
Datei_38.abc
Datei_545.abc
Ich habe zahlreiche automatisierte Möglichkeiten gefunden Dateien umzubenennen, allerdings werden diese meist fortlaufend durchnummeriert, was leider hier ungeeignet ist.
Als Lösungsansatz suche ich nach einer Möglichkeit die Zahl im Namen auszulesen, der Rest ließe sich dann leicht mit einer Schleife machen.

Wäre schön wenn mir einer aushelfen könnte ;)
 
Wenn nur eine Zahl im Namen vorkommt (also z.B. nicht Datei_12_34.abc):
Code:
#!/bin/bash
x=2
find | while read f
do
    echo "${f%%[0-9]*}$((${f//[^0-9]}+$x))${f##*[0-9]}"
done
 
Kein Problem. Bitte beehren sie uns bald wieder....:D
 
Hallo, hab ein ähnliches Problem nur verschärft :D

Beispieldateien:
filename_A_1_B_3_t00.txt
filename_A_1_B_4_t00.txt
filename_A_1_B_4_t01.txt

Der Aufbau "_A_1_B_3_t00" ist immer gleich bei allen Dateien. Wie bekomme ich die Zahlen hinter den Buchstaben "A_x" "B_y" tzz" in eine Variable?

Danke für jede Hilfe!
 
Code:
x=filename_A_1_B_3_t00.txt
y=$(echo "${x:11:1}${x:15:1}${x:18:2}")
echo $y
1300
 
Zurück
Oben