Newsgroup: it.arti.cinema
Titolo: Monica - Linux - ELPH!!!

Ciao.
Ho due directory, dir1 e dir2.
In dir1 ci sono N file (N grande, diciamo N = 5000) con denominazione del
tipo:
XXXXXXXX.ext1
dove XXXXXXXX è un numero identificativo (es. 65047611) unico per ogni file
(ma la successione di questi numeri non segue necessariamente un ordine
logico) e ext1 è l'estensione, uguale per tutti i file contenuti in dir1.
In dir2 ci dovrebbero esserci altrettanti N file, di formato differente, del
tipo:
XXXXXXXX.ext2,
numerati allo stesso modo di dir1, con corrispondenza uno a uno, ma
estensione differente (cioè formato differente).
Ora mi accorgo che in dir2 i dati di tipo ext2 sono in realtà N-1. Ne manca
uno!
In altre parole, deve esserci un file di tipo ext1 che NON ha corrispondente
ext2.
Come faccio, evitando di controllare un file alla volta, a capire *quale*
file di tipo ext1 non è associato a nessun ext2?
Ci si può riuscire con qualche accorgimento o uno scriptino stupido?
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Ci si può riuscire con qualche accorgimento o uno scriptino stupido?
Se stampi le due liste ordinate per nome e poi sovrapponi i due fogli
davanti alla finestra?
-- 
UFV:Il vento fa il suo giro / La guerra di Charlie Wilson / Cloverfield /
Into the Wild / American Gangster / Leoni per agnelli / Halloween - The
Beginning / The Party / Fronte del porto / L'assassinio di Jesse James

 Ci si può riuscire con qualche accorgimento o uno scriptino stupido?
for S in dir1/*.ext1
do
    ls "dir2/`basename $S | cut -f1 -d.`.ext2" > /dev/null
done
---
Sam 

popinga ha scritto:

premesso che sei un minchia galattico, perche' lo chiedi qui ed e` una
domanda da minchia, li rinomini con la stessa estensione nelle 2 dir e
dai diff < /bin/ls dir1 dir2 o usi dircmp

Sam ha scritto:

l'alternativa e` di farsi dare in icq da whiplash uno script
che canna nel caso nelle 2 dir ci siano dei file con piu` di
un punto nel nome =)

 done
Grazie. In realtà la numerazione XXXXXXXX non è standardizzata (ad es posso
avere 445.ext1 o anche 435.5345.555.000004.ext1) ma con qualche modifica
dovrebbe andare. Prima che faccia buio, altrimenti il metodo adamski
scade...


 dai diff < /bin/ls dir1 dir2 o usi dircmp
Come si rinominano 5000 file con un'unica istruzione? No perché se devi
farci uno scriptino, allora mi sa che siamo in due i minchia...


 un punto nel nome
Peggio, sei un linuxaro.
Fai le pulci a fronte di un problema del cazzo dove lui stesso ha detto che 
TUTTI i nomi sono uguali: NNNNNNN.xxx, e poi gli consigli di RINOMINARE 
CINQUEMILA FILES per fare una ls di merda, dandogli pure del minchia come se 
tu fossi un genio.
---
Sam

 farci uno scriptino, allora mi sa che siamo in due i minchia...
 cd dir1
 ls | awk -F . '{ print $1; }'
Questo comando ti elenca tutti i file della directory togliendo
l'estensione (in pratica $1 e' il primo argomento e il punto . dopo F
e' il separatore degli argomenti: se mettessi $2 ti stamperebbe solo
l'estensione)
manda l'output in un file:
ls | awk -F . '{ print $1; }' > dir1_senza_ext
fai lo stesso con dir2:
cd dir2
ls | awk -F . '{ print $1; }' > dir2_senza_ext
poi fai:
diff dir1_senza_ext dir2_senza_ext
P.S.: Si scrive HELP non ELPH!
--
Joe

 dovrebbe andare.
Ah, cazzo, allora usa head al posto di cut, ci sono opzioni per stampare 
tutti i caratteri tranne gli ultimi N.
---
Sam 

 scade...
Ma perché è così stupido il mio metodo?


 Ma perché è così stupido il mio metodo?
Le foreste dell'amazzonia ringraziano.
Per popinga: ho fatto un test col mio metodo, dopo aver creato una
dir1 e una dir2 e averci messo dei file 1.ext1, 2.ext1 ... n.ext1
nella dir1 e 1.ext2, 2.ext2 ... n+1.ext2 nella dir2.
Se questa e' la struttura delle directory dovrebbe funzionare.
--
Joe

 tu fossi un genio.
cuoto!

 Le foreste dell'amazzonia ringraziano.
sono sensibile al problema delle foreste e posso dimostrarlo. possiedo
questa t-shirt:
http://tinyurl.com/rf7r3


 
http://tinyurl.com/rf7r3
LOL. Non ci credo. Questa sera indossala all'olimpico e fatti notare.
...aspetta, la danno in televisione vero?
--
Joe

 nella dir1 e 1.ext2, 2.ext2 ... n+1.ext2 nella dir2.
Grazie. In realtà non si può usare il punto come separatore, dato che posso
avere file tipo 4.3434.3423.ext1.
Cmq mentre bisticciavate ho risolto così:
$ ls -Sl dir1 > lista1
$ ls - Sl dir2 > lista2
Con un editor, aprendo lista1:
 -> query replace ".ext1" with ".ext2" (+ picchio sopra la "y" e pausa caffè)
e infine:
$ diff lista1 lista2


 ...aspetta, la danno in televisione vero?
Che ne so io? A proposito, è ora di andare...


 $ diff lista1 lista2
tsk
si risolve cosě
find dir1/ -name "*.ext1" -exec basename {} .ext1 \;|sort > lista1
find dir2/ -name "*.ext2" -exec basename {} .ext2 \;|sort > lista2

 find dir2/ -name "*.ext2" -exec basename {} .ext2 \;|sort > lista2
ho già risolto ma grazie (a tutti).
dato che ci sono ecco un altro dubbio niubbo, ma non urgente. Ho N files
(diciamo N~5000), con nomi del cazzo e sparsi in varie directory del cazzo,
tutte sotto dir1. Cmq per accedevi sequenzialmente posso usare una lista;
qualcosa come:
/path_1/file_1.ext
/path_2/file_2.ext
/path_3/file_3.ext
etcetc.. Ora diciamo che voglio copiare tutti questi file in un'altra
directory dir2. Immagino si possa fare uno script che accede alla lista riga
per riga, legge i path e copia un file alla volta in dir2. Fino qui più o
meno ok. Ora supponiamo che le directory dir1 e dir2 si trovino su due
diversi computer, pc1 e pc2, entrambi in rete, a L Km di distanza tra loro
(diciamo L>1000 così non scassate la minchia con cavi o HD esterni), per per
cui occorra fare un trasferimento con scp, qualcosa del tipo:
$ scp popinga@pc1:path_i popinga@pc2:path2
ripetuto N volte, con path_i preso dalla lista (i = 1..N) e path2 fisso. Il
problema è: se ogni volta scp chiede una cazzo di password, come cazzo
faccio a implementare tutto in uno script? Si può fare?


 uno script? Si puň fare?
le soluzioni sono:
1 - scp con l'opzione -B
2 - rcp
3 -
cd dir1; tar cvzf ../archivio.tgz . && \
 scp popinga@pc1:../archivio.tgz popinga@pc2:stocazzo.tgz
cosě la password la inserisci una volta sola (oppure usi -B anche in
uesto caso), in questo caso dovrai preoccuparti di scompattare l'archivio
sulla macchina remota in un secondo tempo , e cancellare i tgz su antrambe
le macchine. pero' N-mila copie remote di piccoli sono infinitamente
piu' lente di un'unica cpopia di un file grande, vedi te.
due appunti, 
ma nella tua distribuzione i man non ci sono?
cambia gruppo che qua ti sparano cagate tipo joe, frick e sam

 cambia gruppo che qua ti sparano cagate tipo joe, frick e sam
Ma va a cagare :)
Toh. Ecco come fare per i file che hanno più punti separatori:
ls | egrep ext1$ | awk -F .ext1 '{ print $1; }' > dir1_list
Prende tutti i nomi di file che finiscono per "ext1" (egrep ext1$),
poi individua la stringa ".ext1" come separatore (awk -F .ext1) e
stampa solo l'argomento 1, cioè tutto quello che precede il separatore
".ext1"
In pratica il separatore deve essere proprio .ext1 (e .ext2)
Come ho fatto a non pensarci.
Comunque questa è una di quelle cose per cui varrebbe la pena
impararsi un'infarinatura di perl.
--
Joe

 un'infarinatura di perl.
ma anche no, sarebbe il classico cannone per uccidere una zanzara.
Red
ps: visto popinga ???? ;-))))))

popinga ha scritto:

volendo fare gli esotici e dando per scontate un po' di cose:
comm -3 <(ls dir1 | sed 's/\(.*\).ext1$/\1.ext2/') <(ls dir2)
ti da` anche eventuali file che ci sono come .ext2 e non come
.ext1

RedWiz ha scritto:

beh, il cuggino non ha resistito a caricare la molla, passo io a raccogliere se
non dispiace: "Fai le pulci a fronte di un problema del cazzo", rotfl
grazie sam, e grazie anche a te, amico redwiz
PS sam, giura che quella robaccia e` tua non te l'hanno passata
PPSS occhio, se giuri poi ti tocca ririririririririgiustificarti sul linuxmerda
PPPSSS tranquillo, lo so che non ne capisci una ceppa, tra le tante "RINOMINARE
CINQUEMILA FILES" e` una bazzecola e basename .ext1 strippa l'estensione, senza
fallire coi punti intermedi ^_^

 farci uno scriptino, allora mi sa che siamo in due i minchia...
ls -d *.ext1 | sed 's/\(.*\).ext1$/mv "&" "\1.ext2"/' | sh,
per usare sed come prima (se non ho scordato roba), volendo
dimenticare che se c'e` perl c'e` rename
come la mettiamo con la conta dei minchia? ;)

 CINQUEMILA FILES" e` una bazzecola
sě ma fatti un favore , dovessero chiedertelo ad un colloquio di lavoro,
fai finta di non sapere la risposta :-)

 adamski scade...
Sennò c'è il metodo che ti leva da ogni impiccio:
rm -r *

 done
figata la riga comando.
-- 
Cover what you do best, link to the rest

 fai finta di non sapere la risposta :-)
mc makes me happy

 figata la riga comando.
È una shell, non una riga comando.

 È una shell, non una riga comando.
Lo puoi usare anche su riga di comando.
---
Sam 

 CINQUEMILA FILES" e` una bazzecola
Intelligente piu' che altro.
Siccome basta un comandino, spostiamoli a cuor sereno per cercarne uno 
mancante.
Magari con sotto il daemon che ci sta accedendo.
---
Sam 

 Lo puoi usare anche su riga di comando.
La riga comando di una shell.

 La riga comando di una shell.
Ah, quello intendevi. Pensavo parlassi di shell script.
Cmq dai, perche' questa quadripilosezione ?
Pensi che alfredo colga (e gli freghi di) la differenza ?
---
Sam

 cazzo"?
Spostare cinquemila files, nelle condizioni descritte, non e' un problema del 
cazzo.
Hint: i nomi e la collocazione dei files, e il fatto che siano sempre a 
coppie, suggerisce che non siano documenti star office, ti pare ?
---
Sam 

 differenza ?
Non ci legge solo Alfredo.

 Non ci legge solo Alfredo.
Paura dei vendicatori di linux ?
Tipo frick, magari ?
---
Sam 

 dovrebbe suggerire che si tratta di storici o roba simile
Certo, storici o roba simile.
Come maga da luna park hai un futuro.
Sempre se non chiedi ai clienti di spostarsi di qua e di la per la tenda per 
potergli leggere il futuro.
---
Sam 

 zavorra stracciapalle
Ma guarda, mi vieni a spaccare i coglioni con fantomatiche dritte di whip su 
icq perche' ti ho rubato il palcoscenico del nerd del cazzo e poi piangi 
perche' lo stracciapalle sarei io.
Curioso.
---
Sam 

 Pensi che alfredo colga (e gli freghi di) la differenza ?
a quest'ora credo abbia capito pure lui che tu NCUCD[A-Z]

 
ma quanti anni avete?

 ma quanti anni avete?
Guarda l'xpost e capirai.
---
Sam 

 cambia gruppo che qua ti sparano cagate tipo joe, frick e sam
Nei gruppi tennici, pur usando nick femminili altamente arrapanti, devo
aspettare almeno un giorno; qui ho 10 risposte in un quarto d'ora piů
spettacolino gratuito a seguire (es Sam-frick)... ma che vuoi di piů?
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 spettacolino gratuito a seguire (es Sam-frick)... ma che vuoi di pių?
che magari dai retta ad un consiglio sbagliato e pialli tutti i file, ad
esempio :)

 esempio :)
hey, frescone, mescoli mele con patate, pescatori con pesci (lessi)

RedWiz ha scritto:

tranquillo, tra un po' si cresce e si passa a parlare di figa e birra

 whip
Eh?

whiplash ha scritto:

ha scritto 4 righe di bash, io, che non ne capisco un cazzo, memore dei
suoi linuxmerda gli ho risposto che glieli avevi passate tu in icq, lui
ci sta girando intorno come un gatto con la coda infiocchettata da ieri
meraviglioso

 ci sta girando intorno come un gatto con la coda infiocchettata da ieri
Ah. :-)
Quali erano le righe di bash, btw, che non vedo il post originario?

 ma anche no, sarebbe il classico cannone per uccidere una zanzara.
E qui sono io che facevo un discorso più generale: usare un linguaggio
di scripting creato apposta per compiere operazioni amministrative di
questo tipo (oltre che molte altre cose) può essere molto più comodo
che andarsi a rivedere ogni la pagina man di awk o di find (con tutti
i suoi assurdi caratteri di escape, pure per il punto e virgola!).
--
Joe

 Per non parlare del fatto che la tua ha bisgno di "cd dir1"
Rotfl, fantastico! E poi mi chiedi perché postare qui..


 Eh?
Niente, stavo tirando una ciabatta a un gatto aggrappato ai coglioni.
---
Sam 

frick ha scritto:

chiunque, ma proprio chiunque, ha diritto ad avere degli amici babbei! ;P

 È una shell, non una riga comando.
come li odio i pignoli inutili.
-- 
Cover what you do best, link to the rest