Sto scrivendo uno script Bash per ripulire la mia musica.Linux Rinomina comando maiuscolo prima lettera
volevo che formattare tutti i nomi dei file e rendendoli così con un po 'di ricerca su internet ho scritto questa linea:
sed -i -e 's/[-_]/ /g' -e 's/ \+/ /g' -e **'s/\<[a-z]/\U&/g'** -e "s/$artist //g" -e "s/$album //g"
che ho usato per aggiungere i nomi dei file in un file di testo e poi sed ma non sapevo come applicare i nuovi nomi ai file.
Quindi ho iniziato a sperimentare con il rename e sono riuscito a ottenere lo stesso risultato eccetto per le parti in grassetto, che dovrebbe fare ogni prima lettera di una parola in maiuscolo.
rename 's/[-_]/ /g' * && rename 's/\s+/ /g' * && **rename 's/\s\w{1}/*A-Z*/g' *** && rename 's/^\d+[[:punct:]]\s//g' * && rename "s/$artist\s//g" * && rename "s/$album\s//g" * && rename "s/($ext)//g" *
Ora, il codice di rename sta lavorando (in modo soddisfacente, almeno), trovando una sola lettera dopo un carattere di spazio, ma è la sostituzione che è problematico. Ho provato numerosi approcci diversi, lasciandomi tutti con il risultato che la prima lettera messa a fuoco viene scambiata esattamente con A-Z in questo caso.
Nella pagina di manuale di ridenominazione si dice di rendere maiuscole minuscole si fa 's/a-z/A-Z/g', ma è facile capire che si applica solo quando trova a-z A-Z. Quindi questo è quello che ho bisogno di aiuto con.
Un bonus sarebbe se qualcuno sa come farlo, come nell'esempio sed, dove il \ < corrisponde all'inizio di ogni parola, perché in questo momento, il mio comando Rinomina non si applica alla prima parola e non si applica anche se ci sono più dischi che somigliano a "Nome disco [Disco 1]" per ovvi motivi.
Ho notato che continui a "disconnettersi" dai tuoi post. [Non farlo.] (Http://stackoverflow.com/faq#signatures) – chrisaycock
Se hai già un file di testo con il nome sorgente e le coppie nome destinazione, 'sed 's/^/mv /' textfile | è tutto ciò di cui hai bisogno (sebbene citare nomi di file con spazi ecc. complichi le cose, questo è solo una dimostrazione di concetto, non una risposta reale). – tripleee