2017-06-02 28 views
0

Ich habe eine Textdatei wie folgt.So ersetzen Sie bestimmte Zeilen in einer Textdatei

... 
# xxx start 
... 
# xxx end 
... 

Ich möchte die Linien zwischen # xxx start und # xxx end ersetzen. Wenn # xxx start nicht angezeigt wird, fügen Sie am Ende der Datei die Nummern # xxx start und # xxx end an.
Gibt es eine Möglichkeit, es mit Shell zu tun?

+0

Tun Sie es mit 'awk'. – Barmar

+0

Womit möchten Sie sie ersetzen? – Barmar

+0

@Barmar Ich denke, es kann mit sed gemacht werden, aber ich weiß nicht, wie man die Zeilennummer des '# xxx start' bekommt – John

Antwort

0

Löschen Sie einfach die Zeilen zwischen # xxx start und # xxx end mit sed. Dann füge es am Ende der Datei an. Danke @Barmar.

#!/bin/bash 
sed -i '/# xxx start/,/# xxx end/d' file 
echo '# xxx start' >> file 
curl url >> file 
echo '# xxx end' 
Verwandte Themen