Linux-magazine.it Forum
Maggio 24, 2012, 07:56:37 pm *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?
 
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: archiviare dallo standard input  (Letto 421 volte)
0 utenti e 2 Utenti non registrati stanno visualizzando questa discussione.
formicabianca
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 40



Mostra profilo
« inserita:: Novembre 29, 2011, 11:16:24 am »

Per archiviare ad esempio file txt faccio cosi

tar -cvf fileRisultato.tar $( ls -1 *.txt | grep -vw 'live' )
archivio i file txt che non contengono la parola intera 'live'

Vorrei invece comprimerlo dopo aver fatto la ricerca.
ls -1 *.txt | grep -vw 'live'  | tar -cvf fileRisultato.tar
ma non è corretto

idee per comprimere dallo standard input ?
Registrato
michele.p
Global Moderator
Hero Member
*****

Karma: +49/-44
Scollegato Scollegato

Messaggi: 6741



Mostra profilo
« Risposta #1 inserita:: Novembre 29, 2011, 03:49:06 pm »

Fammi vedere se ho capito. In sostanza vuoi listare (opzione -l di ls) tutti i file .txt e vuoi trovare che all'interno di questi ci sia o meno, questo è poco importante, la parola XYZW. Una volta trovata la parola XYZW cosa vuoi archiviare il file che la (o non la) contiene oppure vuoi creare un nuovo file con una lista di file da comprimere in seguito?

Bye  Fico
Registrato

formicabianca
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 40



Mostra profilo
« Risposta #2 inserita:: Novembre 29, 2011, 05:42:27 pm »

è un uno non elle.
ne scrivo un altro + leggibile.

tar -cvf fileRisultato.tar $( ls -1 *.txt )

Crea un archivio di nome fileRisultato.tar con tutti i file txt che trova.
Funziona, l'ho provato.

Però voglio fare diversamente,
Inviare il risultato della ricerca al programma tar.
Tipo cosi:

( ls -1 *.txt ) | tar -cvf fileRisultato.tar

Non voglio fare una lista.
Registrato
michele.p
Global Moderator
Hero Member
*****

Karma: +49/-44
Scollegato Scollegato

Messaggi: 6741



Mostra profilo
« Risposta #3 inserita:: Novembre 30, 2011, 03:06:21 pm »

...perché usi il comando ls? ...prova con il comando find, ad esempio, in linea di principio (non l'ho provato! ...quindi utilizza copie di file e non gli originali!):

find /percorso/di/ricerca -name *.txt -exec cp \{\} /percorso/di/copia \;

usa -iname se vuoi una ricerca non case sensitive. Se funziona come desideri vediamo di comprimere anche ladestinazione.  Sorriso

Bye  Fico
Registrato

Pagine: [1]   Vai su
  Stampa  
 
Vai a: