Archiv verlassen und diese Seite im Standarddesign anzeigen : Mit Sed Leerzeichen in "\ " umwandeln
Ich möchte mit sed alle Leerzeichen in "\ " umwandeln, damit ich mit dem unteren Script alle JPGs aus /home/mp3 in das derzeitige Verzeichniss kopieren kann (Auch die, die ein Leerzeichen im Namen haben).
Kann man Sed dazu bringen beim Ersetzen der Leerzeichen die Leerzeichen am Ende einer Zeile zu "übersehen"?
#!/bin/bash
for i in `find /home/mp3/ -name *jpg` ; do cp $i ./ ; done
machs doch einfach so:
find /home/mp3/ -name "*.jpg" -exec cp "{}" ./ \;
Danke funktioniert perfekt.
Nun will ich auch noch verstehen wie's funktioniert. Kannst du mir Rest, nach dem find Befehl und dessen Parametern erklären?
find /home/mp3/ -name "*.jpg" -exec cp "{}" ./ \;
Nach dem -exec wird einfach angegeben, was gemacht werden soll. Das {} ist dabei der Dateiname (und damits keine Probleme mit Leerzeichen usw. gibt in Anführungszeichen) und das \; ist... man find ;) *scnr*
-exec command ;
Execute command; true if 0 status is returned. All following
arguments to find are taken to be arguments to the command until
an argument consisting of `;' is encountered. The string `{}'
is replaced by the current file name being processed everywhere
it occurs in the arguments to the command, not just in arguments
where it is alone, as in some versions of find. Both of these
constructions might need to be escaped (with a `\') or quoted to
protect them from expansion by the shell. The command is exe-
cuted in the starting directory.
Ok Danke hab's verstanden. Macht den Alltag leichter :-)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.