Ich werde das Formular mit cURL senden, wobei einige der Inhalte aus einer anderen Datei stammen, die mit sed ausgewählt wurde
Wenn param1 ist ein Zeilenvergleichsmuster aus einer anderen Datei mit sed , der folgende Befehl funktioniert einwandfrei:
curl -d param1="$(sed -n '/matchpattern/p' file.txt)" -d param2=value2 http://example.com/submit
Gehen Sie nun zum Problem. Ich möchte nur Text zwischen 2 übereinstimmenden Mustern anzeigen, ohne das übereinstimmende Muster selbst.
Sagen wir file.txt enthält:
Bla bla bla
firstmatch
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.
secondmatch
The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English.
Derzeit viele „zwischen 2 passende Muster“ sed Befehl wird firstmatch nicht entfernen und secondmatch .
Ich möchte, dass das Ergebnis wird:
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.
Akzeptierte Antwort:
Hier ist eine Möglichkeit, dies zu tun:
sed '1,/firstmatch/d;/secondmatch/,$d'
Erklärt:Von der ersten Zeile bis zur Zeile, die firstmatch entspricht , löschen. Aus der Zeile, die secondmatch entspricht bis zur letzten Zeile löschen.