J'essaie de créer un script bash pour déplacer des fichiers anime téléchargés vers des dossiers sans le numéro d'épisode.
Nom de fichier/Liste des fichiers Par exemple:
[SubsHorrible] name of show - 00 [1080p].mkv
[SubsHorrible] name of show - name2 of show - 00 [1080p].mkv
[SubsHorrible] name of show - 000 [1080p].mkv
Déplacer vers un nouveau dossier basé sur "nom de l'émission"
[SubsHorrible] name of show
[SubsHorrible] name of show - 00 [1080p].mkv
[SubsHorrible] name of show - 01 [1080p].mkv
[SubsHorrible] name of show - name2 of show
[SubsHorrible] name of show - name2 of show - 00 [1080p].mkv
[SubsHorrible] name of show - name2 of show - 01 [1080p].mkv
[SubsHorrible] name of show
[SubsHorrible] name of show - 100 [1080p].mkv
[SubsHorrible] name of show - 101 [1080p].mkv
Toute aide serait appréciée!
Puisque vous n'avez fourni aucun script pour vous aider, utilisez cette ligne pour créer les noms de dossier à partir de la liste de fichiers:
filename="[SubsHorrible] name of show - 00 [1080p].mkv"
Ensuite, obtenez la pièce nécessaire: echo ${filename" "-*}
Résultat: [SubsHorrible] name of show
, pour créer le dossier, faites echo ${filename%%" "-*} | xargs -d '\n' mkdir
Explication: ${filename%" "-*}
: à l'arrière du nom du fichier, supprimez tout jusqu'au point " "-
, puis renvoyez tout le reste.
Pour l'échantillon donné:
[SubsHorrible] name of show - 00 [1080p].mkv
[SubsHorrible] name of show - name2 of show - 00 [1080p].mkv
[SubsHorrible] name of show - 000 [1080p].mkv
Résultats:
[SubsHorrible] name of show
[SubsHorrible] name of show - name2 of show
[SubsHorrible] name of show
Utilisez ce script simple pour créer les dossiers:
#!/usr/bin/env bash
while IFS= read -r var
do
mkdir "${var%" "-*}"
done < "$1"
Usage:
./createfolder.sh list
En coopérer dans votre script plus grand.
https://www.cyberciti.biz/tips/bash-Shell-parameter- substitution_.html