Das läuft im Wesentlichen auf „Wie kombiniere ich pwd und sed delete (oder alternative)“ hinaus? Wie lösche ich bei einer gegebenen Datei mit einer Liste von Dateipfaden Zeilen, die mein aktuelles Verzeichnis enthalten?
Also, wenn Datei1 Folgendes enthält:
Code: Select all
/dirA/subdir1/somefile
/dirB/subdir2/somefile
/dirB/subdir2/somefile
/dirC/subdir2/somefile
/dirD/subdir1/somefile
Und mein Arbeitsverzeichnis ist:
Dann sollte meine Ausgabe Datei1 an Ort und Stelle bearbeiten, um Folgendes zu ergeben:
Code: Select all
/dirA/subdir1/somefile
/dirC/subdir2/somefile
/dirD/subdir1/somefile
Ich weiß, dass ich Zeilen löschen kann mit:
Und ich kann pwd wie folgt in sed einspeisen:
Code: Select all
sed 's?#REPLACE-WITH-PATH?'`pwd`'?'
Also dachte ich, ich könnte sie als eine der folgenden kombinieren:
Code: Select all
sed '/'`pwd`'/d' file1
sed '?'`pwd`'?d' file1
sed '#'`pwd`'#d' file1
Die erste Option wird nicht richtig gelesen, da sie die Schrägstriche des Pfads als Teil des sed-Befehls interpretiert. Der zweite erkennt das Fragezeichen nicht. Der dritte läuft, macht aber nichts.