Suddividere i file in cartelle
Come suddividere gruppi di file in cartelle specifiche.
A cura di
Totò Fiandaca
| issue
#172
| guida/e
Andrea Borruso
Totò Fiandaca
Introduzione
A partire da una cartella che contiene circa 6000 file SVG: i nomi dei file hanno un prefisso ( es: google
, apple
ecc…) seguito da un trattino -
e da una successiva descrizione (google-translate.svg
, google-street-view.svg
, apple-safari.svg
, apple-keyboard-option.svg
ecc…), come creare tante cartelle quante sono i prefissi e con stesso nome, e copiarci dentro tutti i file che hanno quel prefisso.
Script bash
#!/bin/bash
set x
# lista i file *.svg, estrae il prefisso, prendi i valori univoci e crea file
ls *.svg | sed -E 's/^(\w+).+$/\1/g' | uniq >prefisso.csv
# cicla per creare le cartelle e copiare i file
for i in $(cat prefisso.csv);do
mkdir -p $i
cp $i*.svg ./$i
done
Note:
- in
sed
l’opzione-E
è obbligatoria per usare regex complessi, per i gruppi - in
sed
,\1
richiama il primo gruppo
Riferimenti
Ultima modifica 06/01/2021: add ricetta (6e04fd4)