[Algoritmi] Programma creazione file.lis
Buon giorno a tutti ho un file in gedit con una lista di queste sequenze tutte diverse.
40067-01-07-00
40067-01-08-01
96050-02-03-05
56008-06-08-06
ogni sequenza è una specifica cartella con all'interno diversi file tra cui total.pds. Quello che dovrebbe fare il programma è:
1) leggere la sequenza dal file di gedit
2) aprire le cartelle corrispondenti alla lista
3) estrarre i file total.pds
4) scriverlo tramite
in un file chiamato @intervallo.lis
Per esempio:
nella mia cartella madre ho 6 cartelle
10252-02-08-02
40067-01-07-00
40067-01-08-01
50056-02-09-00
96050-02-03-05
56008-06-08-06
nella lista ho
40067-01-07-00
40067-01-08-01
96050-02-03-05
56008-06-08-06
programma:
10252-02-08-02 è nella lista? no escludo cartella
40067-01-07-00 è nella lista? si apro cartella prendo file total.pds e lo scrivo in @intervallo.lis
40067-01-08-01 è nella lista? si apro cartella prendo file total.pds e lo scrivo in @intervallo.lis
50056-02-09-00è nella lista? no escludo cartella
......
.....
.....
alla fine dovrei ottenere @intervallo.lis:
total.pds della cartella 40067-01-07-00
total.pds della cartella 40067-01-08-01
......
......
.....
etc
Vanno benissimo anche suggerimenti perchè non sò propio da dove cominciare
40067-01-07-00
40067-01-08-01
96050-02-03-05
56008-06-08-06
ogni sequenza è una specifica cartella con all'interno diversi file tra cui total.pds. Quello che dovrebbe fare il programma è:
1) leggere la sequenza dal file di gedit
2) aprire le cartelle corrispondenti alla lista
3) estrarre i file total.pds
4) scriverlo tramite
ls total.pds > @intervallo.lis
in un file chiamato @intervallo.lis
Per esempio:
nella mia cartella madre ho 6 cartelle
10252-02-08-02
40067-01-07-00
40067-01-08-01
50056-02-09-00
96050-02-03-05
56008-06-08-06
nella lista ho
40067-01-07-00
40067-01-08-01
96050-02-03-05
56008-06-08-06
programma:
10252-02-08-02 è nella lista? no escludo cartella
40067-01-07-00 è nella lista? si apro cartella prendo file total.pds e lo scrivo in @intervallo.lis
40067-01-08-01 è nella lista? si apro cartella prendo file total.pds e lo scrivo in @intervallo.lis
50056-02-09-00è nella lista? no escludo cartella
......
.....
.....
alla fine dovrei ottenere @intervallo.lis:
total.pds della cartella 40067-01-07-00
total.pds della cartella 40067-01-08-01
......
......
.....
etc
Vanno benissimo anche suggerimenti perchè non sò propio da dove cominciare
Risposte
Suppongo che il file che hai aperto e che ha dentro i nomi delle cartelle vaide si chiami "lista".
Allora semplicemente prendi la lista, la sposti nella cartella dove hai le varie sotto cartelle che dovrai processare e dopo semplicemente
il punto 4, scriverlo tramite "ls total.pds > @intervallo.lis " io l'ho interpretato come "copiare l contenuto del file total.pds (presente all'interno delle cartelle valide) all'interno del file @intervallo.lis
Se quello non era ciò che volevi cambia il comando.
Comunque questa è una mia interpretazione, non ho ben capito cosa chiedi di preciso. Spero d'averci preso
Allora semplicemente prendi la lista, la sposti nella cartella dove hai le varie sotto cartelle che dovrai processare e dopo semplicemente
for i in $(cat lista); do echo $(cat $i/total.pds) "della cartella $i" >> intervallo.lis; done
il punto 4, scriverlo tramite "ls total.pds > @intervallo.lis " io l'ho interpretato come "copiare l contenuto del file total.pds (presente all'interno delle cartelle valide) all'interno del file @intervallo.lis
Se quello non era ciò che volevi cambia il comando.
Comunque questa è una mia interpretazione, non ho ben capito cosa chiedi di preciso. Spero d'averci preso
Grazie mille per l'aiuto. Il programma ha funzionato correttamente.
Buon fine settimana


Buon fine settimana