Útil para renomear vários arquivos usando expressões regulares:
perl -we '$regex = shift(@ARGV); $rep = shift(@ARGV); $rep =~ s/"/\"/g; $rep = qq("$rep"); foreach (@ARGV) { if (/$regex/) { $ren = s/$regex/$rep/geer; print qq(Renaming "$_"n
to
"$ren"n); renomear($_, $ren); }}' <padronizar> <substituição> <arquivos...>
Criado por causa do Linguagens de programação aula no Coursera, cujos vídeos são numerados sem zeros de preenchimento, (educaçao Fisica. “2 – 9 – Funciona formalmente (856).mp4”), bagunçando a ordem de classificação em muitos programas (como VLC).
Para consertá-lo de nosso confiável terminal Linux, primeiro criamos um apelido para organização (que você também pode salvar permanentemente em seu arquivo ~ / .bashrc):
alias renamregex='perl -we '''$regex = shift(@ARGV); $rep = shift(@ARGV); $rep =~ s/"/\"/g; $rep = qq("$rep"); foreach (@ARGV) { if (/$regex/) { $ren = s/$regex/$rep/geer; print qq(
Renaming "$_"n
to
"$ren"n); renomear($_, $ren); }}''
Então mudamos para o diretório com os vídeos, substituindo o meu pelo seu é claro (ou você pode simplesmente pressionar F4 no Dolphin para abrir um terminal nele, se você usa KDE):
cd "~/Documentos/Educación/Cursos en línea/Coursera UoW - Programming Languages/"
E adicionamos um sublinhado à duração do vídeo (então o nome do vídeo é o mesmo da legenda):
renamregex
'(d)(dd).mp4)' '$1_$2' *.mp4
Renaming
"2 - 9 - Funciona formalmente (856).mp4"
"2 - 9 - Funciona formalmente (8_56).mp4"
to
And then we rename all files, adding a zero to all the lone digits, except the last–we don’t want to change the extension:
renamregex
'(^|D)(d)(D)' '${1}0$2$3' *
Renaming
"2 - 9 - Funciona formalmente (8_56).mp4"
"02 - 09 - Funciona formalmente (08_56).mp4"
to
As a goodie for using the best OS for developers, you can install all the programs required on the class with a single command (in Debian/Ubuntu and friends):sudo apt-get install emacs24 smlnj sml-mode
racket
ruby libtcltk-ruby
Though SML mode requires a quick fix (to fix the “require: Constant symbol `:group’ specified in defvar” erro):
sudo perl -pi -e 's/^(defvar :.*n//' /usr/share/emacs/site-lisp/sml-mode/sml-compat.el
sudo emacs -batch -f batch-byte-compile /usr/share/emacs2*/site-lisp/sml-mode/sml-compat.el
If you want to use Emacs instead of DrRacket, install Quack and Geiser with:sudo apt-get install emacs-goodies-el
and for the latest Geiser:wget http://ubuntu.wikimedia.org/ubuntu/pool/universe/g/geiser/geiser_0.4-1_all.deb
sudo dpkg -i geiser_0.4-1_all.deb
rm
geiser_0.4-1_all.deb
(or you can just
if you’re already in Ubuntu Sausy or Debian Jessie).apt-get install geiser
And add to your ~/.emacs:
;; Improved scheme-mode for Racket
(require 'geiser-install)
(require 'quack)
(quack-install)
If you’re in Windows, you’ll have to install Perl and run something like:
cd "$HOMEMis DocumentosEducaciónCursos en líneaCoursera UoW - Programming Languages"
perl -we '$regex = shift(@ARGV); $rep = shift(@ARGV); $rep =~ s/"/\"/g; $rep = qq("$rep"); foreach (@ARGV) { if (/$regex/) { $ren = s/$regex/$rep/geer; print qq(
Renaming "$_"n
"$ren"n); renomear($_, $ren); }}'
to
'(d)(dd).mp4)' '$1_$2' *.mp4
perl -we '$regex = shift(@ARGV); $rep = shift(@ARGV); $rep =~ s/"/\"/g; $rep = qq("$rep"); foreach (@ARGV) { if (/$regex/) { $ren = s/$regex/$rep/geer; print qq(
Renaming "$_"n
"$ren"n); renomear($_, $ren); }}'
to
'(^|D)(d)(D)' '${1}0$2$3' *.*
Though I haven’t tried it.