Suche nach einer Lösung in Bash (wird Teil eines größeren Skripts sein).
Bei einer Variablen, die Informationen der Form
diff -r efb93662e8a7 -r 53784895c0f7 diff.txt
--- diff.txt Fri Jan 23 14:48:30 2009 +0000
+++ b/diff.txt Fri Jan 23 14:49:58 2009 +0000
@@ -1,9 +0,0 @@
-diff -r 9741ec300459 myfile.c
---- myfile.c Thu Aug 21 18:22:17 2008 +0000
-+++ b/myfile.c Thu Aug 21 18:22:17 2008 +0000 -@@ -1,4 +1,4 @@
- int myfunc()
- {
-- return 1;
-+ return 10;
- }
Ich möchte beide (hier diff.txt und myfile.c, aber zukünftige Fälle werden nicht auf diese Anzahl beschränkt sein) Dateinamen in einen String der Form "edited: filename1 filename2 ... filenameN" extrahieren.
Zur Verdeutlichung: Ich möchte mehrere übereinstimmende Dateinamen in eine Zeichenfolge extrahieren.
- Der Befehl "$(expr "$editing" : '.*---[[:space:]]\([[:graph:]]*\)[[:space:]]')" gibt den letzten Dateinamen korrekt zurück, aber nicht die vorherigen Instanzen.
EDIT: Erforderlich ist die Fähigkeit, bearbeitete Dateinamen zu identifizieren (möglicherweise einschließlich Leerzeichen), d.h. Dateinamen, die nach "---" und vor dem Tag "Fr/Do..." erscheinen.
Vielen Dank für Ihre Hilfe (und an die vielen anderen, die bisher geantwortet haben).