On 7/31/24 21:53, Leonardo Boselli wrote:
On Wed, 31 Jul 2024, Piviul wrote:
Il comando di concatenazione nel caso esposto se ci sono più file dovrebbe prendere il primo della lista [nel caso in  esempio se esistono WIS33S1.txt e WIS3303.txt dovrebbe prendere il primo e basta e passare quindi a WIS34… (ossia pr ogni progressivo dato dai caratteri al quarto e quinto posto prendere il primo della lista e passare alla "regola" successiva.)
e questo mi pare che cat non lo faccia.
cosa posso fare ?
uno script?

cero ma mi serve saper: se faccio cat WIZE??[10][SF0].part > WIZE.txt tuuti i file che trova vengono conctenati in ordine alfabetico del nome o in modo semicausale, per cui dovrei fare prima un ls (che mi da comuneque in ordine alfabetico e poi passale l'output di questo a xargs ?

Non so se ho ben capito, oltre al problema dell'ordinamento c'è poi il problema del fatto che non li vuoi prendere tutti; se è così cat non credo da solo sia in grado di leggere quel che vuoi tu con un solo comando, devi usare uno script. Non è molto elegante ma a me viene in mente qualcosa tipo:

for f in $(ls -1); do oldprefix=$prefix; prefix=$(echo $f | grep -o ^......); [ "$oldprefix" = "$prefix" ] && continue; echo $f; done

Piviul

Rispondere a