GNU/Linux >> Linux Esercitazione >  >> Linux

Come reindirizzare l'output da grep a cp?

Questo ha funzionato per me durante la ricerca di file con una data specifica:

 ls | grep '2018-08-22' | xargs -I '{}' cp '{}' ~/data/lidar/tmp-ajp2/

Per copiare i file nelle directory trovate da grep, usa -printf nelle directory di output e -i per posizionare l'argomento del comando da xarg (dopo la pipe)

find ./ -name 'filename.*' -print '%h\n' | xargs -i cp copyFile.txt {}

questo copia copyFile.txt in tutte le directory (in ./) che contengono "filename"


grep -l -r "TWL" --exclude=*.csv* | xargs cp -t ~/data/lidar/tmp-ajp2/

Spiegazione:

  • grep -l opzione per visualizzare solo i nomi dei file
  • xargs per convertire l'elenco dei file dall'input standard agli argomenti della riga di comando
  • cp -t opzione per specificare la directory di destinazione (ed evitare l'uso di segnaposto)

hai bisogno di xargs con il segnaposto opzione:

grep -r "TWL" --exclude=*.csv* | xargs -I '{}' cp '{}' ~/data/lidar/tmp-ajp2/

normalmente se usi xargs , inserirà l'output dopo il comando, con il segnaposto ('{}' in questo caso), puoi scegliere la posizione in cui viene inserito, anche più volte.


Linux
  1. Come eseguire il grep con l'output a colori

  2. Come faccio a grep in modo ricorsivo?

  3. Come ottenere un valore di ritorno da CHILD PROCESS?

  4. Come posso reindirizzare o reindirizzare l'output di curl -v?

  5. Come estrarre il tempo di durata dall'output di ffmpeg?

Come evidenziare una parola nell'output di "cat"??

Come avviare Grep multi-thread nel terminale?

Come impedire a `ls` di ordinare l'output?

Come vedere l'output di uno script PHP?

Come posso filtrare i risultati univoci dall'output di grep?

Come eseguire il grep dell'output di ps con le intestazioni