Sed-Command get text zwischen zwei Strings, während ohne die zwei Zeichenfolgen mithilfe von UNIX-Terminal
So, ich habe einen sed-Befehl sieht wie folgt aus:
sed -n "/DXImageTransform.Microsoft.AlphaImageLoader(src='/,/',sizingMethod='crop');/p"
/Users/ME/Documents/weather/yahooWeather.html > /Users/ME/Documents/weather/out.txt
Und es richtig wird der HTML-Code, ich möchte aus der Datei, aber es hat immer noch die Saiten, die ich verwendet, um für ihn zu suchen (d.h. "DXImageTransform.Microsoft.AlphaImageLoader(src='" & "',sizingMethod='crop');" am Anfang und Ende der Datei. Ich möchte zu löschen, diese zwei strings. Wie kann ich ändern, meinen Befehl zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollte dies funktionieren:
Trennte ich 3 Befehle es mit der
-e
Optionen aber Sie könnten Sie alle zusammen getrennt von;
.Und das ist, was Sie tun:
1,/START/d
-- löscht eine Auswahl: aus der ersten Zeile der Datei, bis die Linie passend zu den Muster/START/
/END/,$d
-- löscht einen Bereich: von der Linie matching das pattern, bis das Ende der Dateip
-- drucken der Zeile aus (dies sind die Linien nicht aufeinander abgestimmt sind, die von früheren mustern)UPDATE
Wenn das Muster ist auf der ersten Zeile, die oben nicht funktionieren. Mit GNU
sed
Sie können fix, dass wie diese:Leider funktioniert es nicht mit BSD
sed
.0,/START/d
als der erste Befehl behoben.