|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2006
Messaggi: 1525
|
[Script] Creare cartelle secondo elenco nomi
Come da titolo avrei bisogno di una mano per uno script che mi renda automatico un lavoro alquanto noioso: creare una serie di cartelle in base ad un elenco di nomi contenuto in un file di testo.
Ad esempio: ho un file di testo che contiene: Codice:
luca alessandro Codice:
~/luca_01/luca_aa/ ~/luca_01/luca_bb/ ~/luca_01/luca_cc/ ~/alessandro_01/alessandro_aa/ ~/alessandro_01/alessandro_bb/ ~/alessandro_01/alessandro_cc/
__________________
-)(- debian -)(- |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jan 2008
Messaggi: 36
|
due cicli for e due cicli while o un if a occhio, poi dipende nello specifico che input, quante cartelle, ecc.ecc.
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2006
Messaggi: 1525
|
Ok, i nomi e le relative cartelle saranno una 60ina.
Il ciclo for dovrei riuscire a metterlo insieme, quello che mi blocca e' come estrarre i nomi dal file di testo ed utilizzarli nel ciclo (cat potrebbe essere d'aiuto?).
__________________
-)(- debian -)(- |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Jan 2008
Messaggi: 36
|
sicuramente con "cat" nel bash scripting, poi da li manipoli l'out con "cut" per averlo pulito o con grep\awk, in base all'output. grep e cut sono relativamente facili, mentre awk richiede un pò di applicazione, io stesso consulto il "man" ogni volta che mi serve
es. cat file.txt | grep "giovanni" | cut -d...... ecc. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Roma
Messaggi: 1473
|
Io farei così
cat lista | xargs mkdir -p M'era sfuggito l'annidamento, lì uno script e d'obbligo. Attendo chi ne sà più di me... Ultima modifica di nicfio : 09-01-2013 alle 14:58. |
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Jan 2008
Messaggi: 36
|
e con xargs però come le fai annidate?
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jan 2001
Messaggi: 2289
|
e' sufficiente un unico ciclo for in realta' con l'unica accortezza di usare il "-" invece che "_", ed e' il seguente:
Codice:
for i in `cat lista.txt`; do mkdir -p $i-{01,02,03}/$i-{aa,bb,cc}; done
PS: si presuppone che la lista contenga nomi unici (non doppioni, quindi) ed uno per riga
__________________
FreeBSD, OpenBSD and GNU/Linux User Free Software Foundation Associate Member proudly member of poco-serio™ team! nella foto son quello simpatico... l'altro e' |Stan| Ultima modifica di eclissi83 : 11-01-2013 alle 00:45. Motivo: aggiunto post scriptum |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:40.



















