2016-04-28 9 views
1

Ich habe eine Reihe von Dateien wie:Wie alle Dateien in Ordnern mit Muster umbenennen

bla.super.lol.S01E03.omg.bbq.mp4 
bla.super.lol.S01E04.omg.bbq.mp4 
bla.super.lol.s03e12.omg.bbq.mp4 

ich sie alle wie umbenennen müssen:

s01e03.mp4 
s01e04.mp4 
s03e12.mp4 

Ich habe versucht, es zu tun mit for file in *; do mv $file ${file%%\.omg*}; done aber es entfernt nur nach S01E01 Teil, nicht bevor es also bitte,

Antwort

0

helfen Wenn Ihre Dateinamen immer Punkt-separ sind aufgeblasenen und der SExxEmm Teil ist immer die vierte ein, dann würde ich es mit awk tun:

for file in *; do 
    mv $file $(echo $file | awk -F. '{print $4 "." $NF}'); 
done 

awk -F. teilt den Dateinamen an den auseinander Punkten und druckt dann das vierte und letzte Feld.

einen „Trockenlauf“ zu tun (dh zeigt die Befehle, anstatt sie ausgeführt wird), sie prepend mit echo:

for file in *; do 
    echo mv $file $(echo $file | awk -F. '{print $4 "." $NF}'); 
done 
2

einfachen Perl-Skript, das die Episode Informationen zu analysieren, versucht, überspringt Dateien, in denen es kann sie nicht finden.

#!perl 

use strict; 
use warnings; 

use File::Copy qw(move); 

foreach my $file (glob('*.mp4')) { 
    my ($info) = $file =~ m/([sS]\d+[eE]\d+)/; 
    next unless $info; 

    my $new_filename = lc $info . ".mp4";  
    move $file, $new_filename 
     or die "$!"; 
} 
4

Viele Linuxe Schiff eine nette Kommandozeilen-Tool rename genannt, die Perl reguläre Ausdrücke isst:

rename 's/.*\.(\w+\d)\..*/$1.mp4/;y/A-Z/a-z/' *.mp4 
1

Eine reine Bash Lösung:

for f in *.mp4; do 
    IFS=. read -r _ _ _ s _ <<< "$f" 
    mv -- "$f" "${s,,}.mp4" 
done 

es zu testen, habe ich der folgende Baum:

tree 
. 
├── bla.super.lol.S01E03.omg.bbq.mp4 
├── bla.super.lol.S01E04.omg.bbq.mp4 
└── bla.super.lol.s03e12.omg.bbq.mp4 

0 directories, 3 files 

Lassen Sie uns einen setzen printf vor mv über die Änderungen sicher sein:

mv -- bla.super.lol.S01E03.omg.bbq.mp4 s01e03.mp4 
mv -- bla.super.lol.S01E04.omg.bbq.mp4 s01e04.mp4 
mv -- bla.super.lol.s03e12.omg.bbq.mp4 s03e12.mp4 

gut aussieht. Der Saisonteil wird extrahiert und nach Bedarf tiefergelegt.

Verwandte Themen