GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich die Ausgabe von grep an cp weiterleiten?

Das hat bei mir funktioniert, als ich nach Dateien mit einem bestimmten Datum gesucht habe:

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

Um Dateien in grep gefundene Verzeichnisse zu kopieren, verwenden Sie -printf, um Verzeichnisse auszugeben, und -i, um das Befehlsargument von xarg (nach Pipe) zu platzieren

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

dies kopiert copyFile.txt in alle Verzeichnisse (in ./), die "filename"

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

Erklärung:

  • grep -l Option nur Dateinamen auszugeben
  • xargs zum Konvertieren der Dateiliste von der Standardeingabe in Befehlszeilenargumente
  • vgl. -t Option zur Angabe des Zielverzeichnisses (und Vermeidung von Platzhaltern)

Sie brauchen xargs mit dem Platzhalter Möglichkeit:

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

normalerweise, wenn Sie xargs verwenden , wird die Ausgabe hinter gesetzt der Befehl, mit dem Platzhalter ('{}' in diesem Fall), können Sie den Ort, an dem es eingefügt wird, auch mehrmals auswählen.


Linux
  1. Wie hebt man ein Wort in der Ausgabe von „Katze“ hervor?

  2. Wie kann man die Ausgabe von Grep unterdrücken, sodass nur der Exit-Status zurückgegeben wird?

  3. Wie erhalte ich einen Rückgabewert von CHILD PROCESS?

  4. Wie kann ich die Ausgabe von curl -v weiterleiten oder umleiten?

  5. Wie verkettet man mehrere Ausgabezeilen zu einer Zeile?

Wie kann man die Ausgabe eines Php-Skripts sehen?

Wie kann /dev/urandom zur Linux-Soundausgabe geleitet werden?

Wie kann ich Verzeichnisse von grep -R ausschließen?

Wie erhalte ich eine Ausgabe von gdb.execute in PythonGDB (GDB 7.1)?

grep-Ausgabe von lang nach breit

So grep ps-Ausgabe mit Headern