La pagina man offre due esempi:
rename 's/\.bak$//' *.bak
rename 'y/A-Z/a-z/' *
Quindi è s o y e poi /replaceThis/withThis
Cosa significano i principali s e y? Ci sono altre opzioni?
La pagina man offre due esempi:
rename 's/\.bak$//' *.bak
rename 'y/A-Z/a-z/' *
Quindi è s o y e poi /replaceThis/withThis
Cosa significano i principali s e y? Ci sono altre opzioni?
Risposte:
Nel primo caso:
rename 's/\.bak$//' *.bak
stai eseguendo un'espressione regolare rispetto ai nomi dei file e sostituendo la parte corrispondente delle espressioni (.bak alla fine del nome di un file) con la seconda espressione (che è vuota).
Nel secondo caso:
rename 'y/A-Z/a-z/' *
stai facendo una corrispondenza con lo spazio del modello di espressione regolare e stai traslitterando sulla destinazione. In altre parole, l'intervallo AZ viene modificato nell'intervallo az, rendendo i nomi dei file minuscoli.
Ti suggerisco di guardare la pagina man di sed per ulteriori comandi e maggiori dettagli. Credo che il comando 's' sia usato più spesso. Inoltre, regex (sezione 7) e la documentazione perl possono anche essere di aiuto. In particolare, ecco un tutorial su perl ed espressioni regolari.
Da man sed
:
s / regexp / sostituzione / Tentativo di abbinare regexp con lo spazio del pattern. Se successo ful, sostituisci quella porzione abbinata a sostituzione. Il la sostituzione può contenere il carattere speciale e fare riferimento a quello porzione dello spazio del motivo che corrispondeva e lo speciale sfugge da \ 1 a \ 9 per fare riferimento alla corrispondenza corrispondente sottoespressioni in regexp. y / sorgente / destinazione / Traslitterare i caratteri nello spazio del motivo che appaiono in origine al personaggio corrispondente in dest.