Mit sed den Dateinamen aus dem vollständigen Pfad abrufen?

8

Ich bin neu bei sed und brauche nur den Dateinamen aus der Ausgabe von find . Ich muss den gesamten Pfad für einen anderen Teil meines Skripts gefunden haben, aber ich möchte nur den Dateinamen ohne den Pfad drucken. Ich muss auch von Anfang an der Linie anpassen, nicht vom Ende. In Englisch, ich möchte übereinstimmen, die erste Gruppe von Zeichen, die mit ".txt" enden, die kein "/" enthalten. Hier ist mein Versuch, der nicht funktioniert:

%Vor%

Hier ist die Ausgabe, die ich möchte:

%Vor%

Ok, also haben die angebotenen Lösungen meine ursprüngliche Frage beantwortet, aber ich glaube, ich habe sie falsch gestellt. Ich möchte nicht den Rest der Zeile nach dem Datei-Suffix töten, nach dem ich suche. Also, um klarer zu sein, wenn folgendes:

%Vor%

Was ich will ist:

%Vor%

Entschuldigung für die Verwirrung. Meine ursprüngliche Frage behandelte nur den ersten Teil dessen, was ich versuche zu tun.

2. Bearbeitung: Hier ist, was ich mir ausgedacht habe:

%Vor%

Das ist nicht ganz das, was ich will. Anstatt das Zielverzeichnis als Shell-Variable festzulegen, möchte ich die erste sed -Operation ändern, so dass sie nur die cp -Ausgabe vor dem "- & gt;" auf jeder Zeile, so dass ich noch den 2. Teil des cp -Ausgangs habe, um mit einem anderen '-e' zu arbeiten.

3. Bearbeitung: Ich habe das noch nicht mit sed regex's herausgefunden, aber das Folgende erledigt den Job mit Perl:

%Vor%

Ich würde es aber gerne in sed machen.

    
ryan_m 30.09.2009, 11:37
quelle

5 Antworten

7

So etwas sollte den Trick machen:

%Vor%

oder, etwas klarer,

%Vor%     
dave 25.07.2009, 01:39
quelle
15

Warum verwenden Sie nicht stattdessen basename?

%Vor%     
Emil H 25.07.2009 01:36
quelle
8

Keine externen Tools erforderlich, wenn Sie GNU find

verwenden %Vor%     
ghostdog74 25.07.2009 02:09
quelle
0
%Vor%     
Freddy 25.07.2009 02:01
quelle
-2
%Vor%     
guest 17.11.2014 19:01
quelle

Tags und Links