Outils pour utilisateurs

Outils du site


linux:script_renommage_films
renommageFILM.sh
#!/bin/bash
ls -1 | grep -e "mkv$"> liste.txt
 
# Liste des fichiers exemple
# Aliens.2.Le.Retour.1986.TrueFrench.mHD.1080p.AC3-WarezB69-zone-Telechargement.ws.mkv
# Aliens.3.1992.TrueFrench.mHD.1080p.AC3-WarezB69-zone-Telechargement.ws.mkv
# Aliens.4.La.Resurrection.1997.TrueFrench.mHD.1080p.AC3-WarezB69-zone-Telechargement.ws.mkv
# Drone.2017.MULTI.1080p.BluRay.Light.x264.AC3.ACOOL.Zone-Telechargement.ws.mkv
# G.I. Joe  Conspiration (2013) MULTi-VF2 1080p BluRay x264-PopHD-zone-Telechargement.ws.mkv
# Gattaca 1080p MULTi 1997 BluRay x264-Pop (Bienvenue A Gattaca) -zone-Telechargement.ws.mkv
# Ghost.in.the.Shell.2017.MULTi.1080p.HDLight.x264.AC3-GZR.WwW.Zone-Telechargement.Ws.mkv
# Ghostbusters.2016.EXTENDED.MULTI.ENG.FRENCH(vfq).1080p.x264.AC3.luCFER.www.Zone-Telechargement.com.mkv
# Honey (2003) MULTi-VF2 1080p BluRay x264-PopHD-zone-Telechargement.ws.mkv
# Hors du temps 2009 TRUEFRENCH AC3 1080p x264-GOLDORAK.mkv
# Il faut sauver le soldat Ryan (1998) MULTI 1080p Bluray x264-PopHD (Saving Private Ryan)-zone-Telechargement.ws.mkv
# ISRA.88.2016.MULTI.1080p.BluRay.Light.x264.AC3.ACOOL.Zone-Telechargement.ws.mkv
# Le chateau dans le ciel (1986) [1080p] MULTi BluRay x264-PopHD.mkv
# Le voyage de Chihiro (2001) [1080p] MULTi BluRay x264-PopHD.mkv
# Life.2017.FRENCH.1080p.BluRay.Light.x265.HEVC.AC3.ACOOL.Zone-Telechargement.ws.mkv
# Logan.2017.MULTI.TRUEFRENCH.1080p.BluRay.Light.x264.AC3.ACOOL.Zone-Telechargement.ws.mkv
# Resident.Evil.Vendetta.2017.MULTi.1080p.HDLight.x264.AC3-GZR.WwW.Zone-Telechargement.Ws.mkv
# Shanghai Kid (2000) MULTi-VF2 1080p BluRay x264-PopHD (Le.cowboy.de.Shanghai) -zone-Telechargement.ws.mkv
# Son of a Gun (2015) 1080p MULTi VFF BluRay x264-PopHD-zone-Telechargement.ws.mkv
# Split.2016.MULTI.TRUEFRENCH.1080p.BluRay.DTS.x264-CINeHD.WwW.Zone-Telechargement.Ws.mkv
# T2.Trainspotting.2017.MULTI.1080p.BluRay.Light.x264.AC3.ACOOL.Zone-Telechargement.ws.mkv
# The Shawshank Redemption 1994 Multi-VF2 1080p BluRay x264-PopHD  (Les.Évadés)-zone-Telechargement.ws.mkv
# The.Boss.Baby.2017.MULTi.1080p.BluRay.Light.x264.AC3.ACOOL.Zone-Telechargement.ws.mkv
# The.Lost.City.Of.Z.2016.TRUEFRENCH.1080p.Bluray.Light.x264.AC3.ACOOL.Zone-Telechargement.ws.mkv
 
awk -v strdate="$(date +%Y-%m-%d)" -v format=luc '
function deleteSite(_string) {
	match(_string,/([Ww]+[\.-])?[Zz][Oo][Nn][Ee]-[Tt][Ee][Ll][Ee][Cc][Hh][Aa][Rr][Gg][Ee][Mm][Ee][Nn][Tt](\.([Cc][Oo][Mm]|[Ww][Ss]))?/);
	if (RLENGTH != -1) {
		avant=substr(_string,1,RSTART-1);
		apres=substr(_string,RSTART+RLENGTH,length(_string)-RLENGTH);
		s=avant apres;
	} else {
		s=_string;
	}
	return s
}
 
BEGIN {
	_fichier="rename." strdate ".sh";
	print "#!/bin/bash" > _fichier;
	printf("| %40s | %25s | %4s | %5s | %4s | %3s | %18s |\n","Titre","Titre alt.","Date","Res.","Vid.","Son","Langue");
	printf("\n# | %40s | %25s | %4s | %5s | %4s | %3s | %18s |\n","Titre","Titre alt.","Date","Res.","Vid.","Son","Langue") > _fichier;
}
 
{
	_fileUPPER=deleteSite(toupper($0));
	_fileLOWER=deleteSite(tolower($0));
	_titre="";
	_titreALT="";
	_date="";
	_rez="";
	_codecVideo="";
	_codecAudio="";
	_lang="";
	_tmp="";
	_ext=substr(_fileLOWER,length(_fileLOWER)-3,4);
 
	match(_fileLOWER,/(19[0-9][0-9]|20[0-9][0-9])/);
	if (RLENGTH != -1) {
		_date=substr(_fileLOWER,RSTART,RLENGTH);
		minStart=RSTART;
	}
 
	match(_fileLOWER,/(2160|1080|720)p/);
	if (RLENGTH != -1) {
		_rez=substr(_fileLOWER,RSTART,RLENGTH);
		if (RSTART < minStart) { minStart=RSTART; }
	}
 
	match(_fileLOWER,/([hx]26[45]|hevc)/);
	if (RLENGTH != -1) {
		_codecVideo=substr(_fileLOWER,RSTART,RLENGTH);
		if (RSTART < minStart) { minStart=RSTART; }
	}
 
	match(_fileUPPER,/(AAC|AC3|DTS)/);
	if (RLENGTH != -1) {
		_codecAudio=substr(_fileUPPER,RSTART,RLENGTH);
		if (RSTART < minStart) { minStart=RSTART; }
	}
 
	match(_fileLOWER,/multi/);
	if (RLENGTH != -1) {
		_lang="MULTi(";
		if (RSTART < minStart) { minStart=RSTART; }
		_tmp=substr(_fileUPPER,RSTART+RLENGTH,length(_fileUPPER)-(RSTART+RLENGTH-1));
		do {
			match(_tmp,/VO|VF[F2Q]?|(TRUE)?FR(ENCH)?|EN(G(LISH)?)?/);
			if (RLENGTH != -1) {
				_lang=_lang"."substr(_tmp,RSTART,RLENGTH);
				_tmp=substr(_tmp,RSTART+RLENGTH,length(_tmp)-(RSTART+RLENGTH));
			}
		} while (RLENGTH != -1)
		# harmonisation : (TRUE)FRENCH -> FR   ENG(LISH) -> EN
		_lang=_lang ")";
		gsub(/ENG(LISH)?/,"EN",_lang);
		gsub(/(TRUE)?FRENCH/,"FR",_lang);
		sub(/\(\./,"(",_lang);
		sub(/\(\)/,"",_lang);
	}
 
	match(_fileLOWER,/\([a-zâàäéêèëîïôöûùüç -\.]+\)/);
	if (RLENGTH != -1) {
		_titreALT=substr($0,RSTART,RLENGTH);
	}
 
	_titre=substr($0,1,minStart-1);
	sub(/ \(?$/,"",_titre);
	sep=substr(_titre,length(_titre),1);
	if (sep==".") {
		gsub(/\./," ",_titre);
	}
	sub(/ $/,"",_titre);
 
	# tableau récapitulatif de ce qui a été détecté
	printf("| %40s | %25s | %4s | %5s | %4s | %3s | %18s |\n",_titre,_titreALT,_date,_rez,_codecVideo,_codecAudio,_lang);
	printf("# | %40s | %25s | %4s | %5s | %4s | %3s | %18s |\n",_titre,_titreALT,_date,_rez,_codecVideo,_codecAudio,_lang) > _fichier;
 
	# création du nouveau nom de fichier (FILM)
	_film=_titre " (" _date ") [" _rez "." _codecVideo "." _codecAudio "." _lang "]" _ext;
	# nettoyage : ".." -> "."   ".]" -> "]"   "()" -> ""   "[]" -> ""   "  " -> " "
	gsub(/\.\.+/,".",_film);
	sub(/\.\]/,"]",_film);
	gsub(/[\(\[][\)\]]/,"",_film);
	gsub(/  +/," ",_film);
 
	# création du nouveau nom de fichier (FILM) au format luc
	if (format=="luc") {
		if (_lang=="") {
			_lang="fr";
		} else if (_lang ~ "^MULTi$") {
			_lang="{en-fr}";
		} else {
			gsub(/VF[F2Q]?/,"fr",_lang);
			sub(/MULTi\(/,"{",_lang);
			sub(/\)/,"}",_lang);
			_lang=tolower(_lang);
		}
		_film=_titre " [" _date "." _codecVideo "." _codecAudio "." _lang "]" _ext
		# nettoyage : ".." -> "."
		gsub(/\.\.+/,".",_film);
	}
 
	_fichiersOLD[NR]=$0;
	_fichiersNEW[NR]=_film;
}
 
END {
	for (i in  _fichiersNEW) {
		# print "\n" _fichiersOLD[i] "\n" _fichiersNEW[i];
		print "\n# " _fichiersOLD[i] "\n# " _fichiersNEW[i] > _fichier;
		printf("mv \"%s\" \"%s\"\n",_fichiersOLD[i],_fichiersNEW[i]) > _fichier;
	}
}
' liste.txt
linux/script_renommage_films.txt · Dernière modification: 2017/08/16 23:06 de pascal