Mit sed zu greifen Dateinamen aus einem vollständigen Pfad?

Ich bin neu in der sed, und greifen müssen nur den Dateinamen aus der Ausgabe von find. Ich muss Sie finden die Ausgabe der gesamten Pfad für einen anderen Teil von meinem Skript, aber ich wollen, drucken Sie einfach den Dateinamen ohne den Pfad. Ich muss auch passen ab Anfang der Linie, nicht vom Ende. In Englisch haben, ich will übereinstimmt, wird die erste Gruppe von Zeichen mit der Endung ".txt" nicht mit einem "/". Hier mein Versuch, der nicht funktioniert:

ryan@fizz:~$ find /home/ryan/Desktop/test/-type f -name \*.txt
/home/ryan/Desktop/test/two.txt
/home/ryan/Desktop/test/one.txt
ryan@fizz:~$ find /home/ryan/Desktop/test/-type f -name \*.txt | sed s:^.*/[^*.txt]::g
esktop/test/two.txt
ne.txt

Hier ist die Ausgabe, die ich will:

two.txt
one.txt

Ok, also die Lösungen, die angeboten werden, beantwortet meine ursprüngliche Frage, aber ich glaube, ich fragte, ist es falsch. Ich will nicht zu töten den rest der letzten Zeile des Datei-suffix ich bin auf der Suche nach.
Also, um deutlicher zu sein, wenn die folgenden:

bash$ new_mp3s=\`find mp3Dir -type f -name \*.mp3\` && cp -rfv $new_mp3s dest
 `/mp3Dir/one.mp3' -> `/dest/one.mp3'
 `/mp3Dir/two.mp3' -> `/dest/two.mp3'

Was ich will, ist:

bash$ new_mp3s=\`find mp3Dir -type f -name \*.mp3\` && cp -rfv $new_mp3s dest | sed ???
 `one.mp3' -> `/dest'
 `two.mp3' -> `/dest'

Sorry für die Verwirrung. Meine ursprüngliche Frage nur bedeckt der erste Teil von dem, was ich versuche zu tun.

2. edit:
hier ist, was ich mir ausgedacht habe:

DEST=/tmp && cp -rfv `find /mp3Dir -type f -name \*.mp3` $DEST | sed -e 's:[^\`].*/::' -e "s:$: -> $DEST:"

Dies ist nicht ganz das, was ich will obwohl. Statt der Einstellung des Ziel-Verzeichnisses, wie eine shell-variable, die ich ändern möchten, ist der erste sed Betrieb so, es ändert sich nur die cp Ausgabe vor dem "->" am Zeilenende, so dass ich immer noch der 2. Teil der cp Ausgang zu betreiben mit einem anderen '-e'.

3. edit:
Ich habe nicht dachte, dies nur mit sed-regex ' s noch, aber die folgende, macht die Arbeit mit Perl:

cp -rfv `find /mp3Dir -type f -name \*.mp3` /tmp | perl -pe "s:.*/(.*.mp3).*\`(.*/).*.mp3\'$:\$1 -> \$2:"

Ich würde gerne, um es in der sed, obwohl.

Schreibe einen Kommentar