Ciao a tutti,
il mio problema è questo: in una cartella ho tantissimi file e devo copiarne in un'altra solo alcuni. I nomi dei file sono del tipo: ciao_$y.txt, dove al posto di $y ho numeri da 1 a 20... non posso usare cp *.txt perchè così me li copierebbe tutti, invece io voglio copiare solo i file con $y da 1 a 5!

(Spero si capisca..)

Come posso fare? Ho provato con shell script ma nulla...

Grazie mille :)

chiesto 19 Mar '14, 14:52

mcfly87's gravatar image

mcfly87
15556

modificato 19 Mar '14, 16:41

enzotib's gravatar image

enzotib ♦♦
14.1k113187


l'espressione corretta è

cp ciao_[1-5]?(.0[0-5]).txt /todir

testato con lubuntu 12.04. Trovi la sintassi eseguendo man bash nella sezione relativa "pathname expansion"

coll. permanente

ha risposto 23 Mar '14, 16:34

letizia's gravatar image

letizia
7231519

modificato 23 Mar '14, 17:29

enzotib's gravatar image

enzotib ♦♦
14.1k113187

@letizia: c'è da precisare che questo non risponde alla domanda iniziale posta dall'utente, ma alla domanda così come modificata nei commenti alla risposta di @ilgallinetta.

(23 Mar '14, 17:32) enzotib ♦♦ enzotib's gravatar image

scusa, hai ragione. la cancello e la posto come commento?

(23 Mar '14, 17:57) letizia letizia's gravatar image

@letizia: no, va bene così, ho commentato giusto per indirizzare chi legge solo la domanda e la tua risposta e non capisce.

(23 Mar '14, 19:08) enzotib ♦♦ enzotib's gravatar image

Puoi fare:

cp ciao_{1..5}.txt /path/
coll. permanente

ha risposto 19 Mar '14, 16:42

enzotib's gravatar image

enzotib ♦♦
14.1k113187

ho provato con cp ciao_{1 2 3 4 5}.txt /path/ ma mi dice "missing }"

(19 Mar '14, 16:51) mcfly87 mcfly87's gravatar image

Al post di /path/ devi metter la dir dove vuoi che vadano a finire ... quello di @enzotib era un esempio ... lo devi adattare

(19 Mar '14, 17:21) Paolo- Paolo-'s gravatar image

@mcfly87, @Paolo-: non era un esempio, era il comando esatto corrispondete alla sua richiesta.

(19 Mar '14, 18:12) enzotib ♦♦ enzotib's gravatar image

Scusate, non sto capendo...ho sostituito a /path/ il mio percorso, questo l'ho fatto già dal principio..ma non ha funzionato...Solo che adesso non capisco, se quello è il comando esatto, il mio percorso dove devo metterlo? Grazie :)

(19 Mar '14, 18:25) mcfly87 mcfly87's gravatar image

@mcfly87: sì. /path devi sostituirlo, ma la sintassi {1..5} era esattamente così, non devi mettere {1 2 3 4 5}

(19 Mar '14, 19:38) enzotib ♦♦ enzotib's gravatar image

purtroppo non va, anche scrivendo {1..5}..Non riconosce questa sintassi e mi dice: file o directory non esistente.. :(

(20 Mar '14, 09:22) mcfly87 mcfly87's gravatar image

@mcfly87: sbagli qualcosa oppure non hai spiegato bene il problema

(20 Mar '14, 10:41) enzotib ♦♦ enzotib's gravatar image

O imposti male il percorso o la directory dove vuoi mettere i files non estiste e devi crearla.

Però visto che con i comandi a carattere non fai amicizia, puoi anche fare così:

  1. apri la finestra che contiene i files da copiare;
  2. tenendo premuto il tasto Ctrl con il mouse (normalmente con il sinistro) selezioni tutti i files che vuoi copiare;
  3. clicchi con il tasto destro del mouse su uno dei files selezionati e dal menu contestuale scegli Copia;
  4. apri la cartella nella quale vuoi copiare i files, clicchi con il tasto destro del mouse in un punto vuoto della cartella stessa e dal nuovo menu che appare, scegli incolla.

Guarda, se può esserti utile, qui trovi i principali comandi, suddivisi per classe.

coll. permanente

ha risposto 20 Mar '14, 09:37

enzoge's gravatar image

enzoge
4.7k304088

modificato 20 Mar '14, 10:43

Ho trovato la soluzione! Funziona con le quadre anzichè con le graffe, e se scrivo, ad esempio: ciao_[1..2..3..4..5].txt L'unico problema che mi resta è che alcuni file si chiamano ciao_0.01.txt, ciao_0.05.txt, cioè hanno dei numeri con virgola, e per questi ovviamente la sintassi che ho appena scritto non funziona, perchè penso ci sia confusione tra tutti quei punti...Non so se avete idee a riguardo, nel caso sarebbero ben accette!! Grazie :)

(20 Mar '14, 09:53) mcfly87 mcfly87's gravatar image

@mcfly87: ho aggiunto alla risposta il link alla pagina che spiega i principali comandi per il terminale di Linux Ubuntu.

(20 Mar '14, 10:46) enzoge enzoge's gravatar image

Grazie! Che ne dite della soluzione che ho trovato? E della questione dei files tipo: ciao_0.01.txt, ciao_0.05.txt ?

(20 Mar '14, 10:51) mcfly87 mcfly87's gravatar image

Sono felice che tu abbia risolto, ma mi spiace, per rispondere correttamente alla tua domanda, non si può che ribadire sia la mia risposta che quella di @enzotib, con relativi commenti. Se poi ci sono altre varianti, o le aggiungi alla domanda, o per queste ne fai una nuova.

Altrimenti mettiamo in confusione chi, con un problema analogo, legge questo tread.

(20 Mar '14, 11:09) enzoge enzoge's gravatar image
La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×82
×33
×15

domanda posta: 19 Mar '14, 14:52

domanda visualizzata: 4,159 volte

ultimo aggiornamento: 25 Oct '23, 15:10

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.