.png)
Ich habe ungefähr 250 TXT-Dateien, die alle den Namen „link.txt“ haben und in Zeile 3 immer diese Informationen enthalten:
Titel: Irgendeine Art von Titel
Ich brauche eine Art Skript, das diese Dateien durchgehen, den Titel erfassen und als Dateinamen verwenden kann. Die Ordnerstruktur lautet: 1-links/20150528/1/. Es wäre also toll, wenn ich das Skript einfach in „1-links“ ausführen könnte und es nach Dateien mit dem Namen „link.txt“ suchen würde.
Ich verwende Mac OSX.
Kann mir jemand helfen?
Antwort1
So etwas kann funktionieren:
for i in `find . -name link.txt -type f`;
do
nn=$(sed -n -e 3p -e "s/title:\ // "$i")
mv "$i" "`dirname $i`/$nn"
done
Wenn Sie statt der Datei das letzte Verzeichnis im Pfad umbenennen möchten, können Sie Folgendes verwenden:
for i in `find . -name link.txt -type f`;
do
nn=$(sed -n -e 's/title: //' -e 3p $i)
odir=`dirname $i`
ndir=$(echo $odir|awk -v nn="$nn" -F\/ 'BEGIN {OFS="/"} {$NF=nn;print}')
mv "$odir" "$ndir"
done