Puncte:0

Eliminați șirul de date de astăzi din toate numele fișierelor din folder

drapel cn
Pad

Am un folder plin de jpeg formatate astfel:

0001_20210516_XYZ.jpg
0002_20210516_XYZ.jpg
123_20210516_XYZ.jpg
01_20210516_XYZ.jpg

și vreau să redenumesc toate fișierele, astfel încât șirul de dată din mijloc să fie eliminat, astfel încât fișierele să arate astfel:

0001_XYZ.jpg
0002_XYZ.jpg
123_XYZ.jpg
01_XYZ.jpg

Am incercat sa folosesc acest raspuns pentru a scrie regex pentru a elimina 8 cifre folosind acest cod:

redenumiți - 's/^_\d{8}\_//' *

Dar asta nu a făcut nimic. Nu sunt sigur cum să formatez corect, astfel încât șirul de date din mijloc este eliminat.

Puncte:3
drapel hr

Pentru a elimina primul caracter de subliniere și următoarele 8 cifre folosind Perl redenumiți (alias redenumirea fișierului), trebuie să aruncați ancora de început de linie ^, și a doua liniuță de subliniere (altfel veți ajunge cu 0001XYZ.jpg etc.)

Asa de:

redenumiți -n 's/_\d{8}//' *_*_*.jpg

Alternativ ai putea folosi mmv (din pachetul Ubuntu cu același nume):

mmv -n '*_*_*.jpg' '#1_#3.jpg'

În ambele cazuri, cel -n este pentru testare - eliminați-l când sunteți mulțumit de modificările propuse.

Dacă ați rămas blocat cu versiunea de redenumire de la util-linux (care este instalat ca redenumire.ul pe sistemul meu), atunci probabil că cel mai bun lucru pe care îl vei putea face este să potriviți șirul literal _20210516:

rename.ul -vn _20210516 '' *_*_*.jpg

Dacă chiar trebuie să eliminați azi data la care ai putea generaliza asta

rename.ul -vn "_$(data +%Y%m%d)" '' *_*_*.jpg

(Rețineți că rename.ul din util-linux 2.34 face sprijin a -n opțiunea, pe care o folosesc aici în scopuri demonstrative - ajustați în consecință dacă versiunea dvs. nu o face).

Pad avatar
drapel cn
Pad
Acest lucru îmi dă eroarea „redenumiți: opțiunea nevalidă -- „n” Utilizare: redenumiți [opțiuni] fișier de înlocuire a expresiei... Opțiuni: -v, --verbose explică ceea ce se face -s, --symlink acționează asupra țintei link-ului simbolic -h, --help afișați acest ajutor și ieșiți -V, --version iese informații despre versiune și ieșire Pentru mai multe detalii vezi rename(1). ` și când îl rulez fără -n numele fișierelor mele nu se schimbă :(
drapel hr
@Pad în acest caz, implementarea `rename` pe care o utilizați nu este una cu care sunt familiarizat - răspunsul meu se aplică celui bazat pe Perl, uneori cunoscut sub numele de `file-rename`.
Pad avatar
drapel cn
Pad
Nicio problemă, când fac -V primesc `rename from util-linux 2.23.2`, mulțumesc pentru ajutor! O sa tot incerc.
drapel hr
@Pad Am adăugat alte câteva opțiuni care s-ar putea să ți se potrivească mai bine
drapel cn
Cunoscut și ca [`prename`](https://manpages.ubuntu.com/manpages/focal/en/man1/prename.1p.html)
Pad avatar
drapel cn
Pad
@steeldriver vă mulțumesc - a funcționat perfect `redenumiți -v "_$(data +%Y%m%d)" '' *_*_*.jpg `

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.