sed jest doskonałym narzędziem do prostych podstawień w jednej linii. Dla każdego inna manipulacja tekst wystarczy użyć awk o jaśniejszym, prostszym, bardziej łatwo rozszerzalny rozwiązanie:
$ awk '/start_pattern/{f=1} /end_pattern/{f=0} !f;' file
blah1
blah2
end_pattern
blah6
blah7
Zobacz także:
$ awk '/start_pattern/{f=1} !f; /end_pattern/{f=0}' file
blah1
blah2
blah6
blah7
$ awk '!f; /start_pattern/{f=1} /end_pattern/{f=0}' file
blah1
blah2
start_pattern
blah6
blah7
$ awk '/start_pattern/{f=1} /end_pattern/{f=0} f;' file
start_pattern
blah3
blah4
blah5
$ awk '/start_pattern/{f=1} f; /end_pattern/{f=0}' file
start_pattern
blah3
blah4
blah5
end_pattern
$ awk 'f; /start_pattern/{f=1} /end_pattern/{f=0}' file
blah3
blah4
blah5
end_pattern
Niestety o tym. Dzięki za naprawienie mojego formatowania. – Springray
Nie ma problemu :) witamy na SO. –
W tym pytaniu http://stackoverflow.com/q/8164604/356440 mają do czynienia z edycją i usuwaniem wielu wierszy za pomocą 'sed', może to może dać ci kilka wskazówek/ścieżek. –