Czy w sed
można pominąć pierwsze n linii podczas stosowania wyrażenia regularnego? Obecnie używam następujących:Pomijanie pierwszych n linii przy użyciu wyrażenia regularnego z sed?
cat test | sed '/^Name/d;/^----------/1;/^(/d;/^$/d'
na następujący plik:
Name
John
Albert
Mora
Name
Tommy
Tammy
w jednym przejściu, chcę korzystać z niektórych regexes których (jeden jest, aby usunąć wiersz zawierający Name
ale chcę pominąć pierwszy wiersz w tym przypadku), aby uzyskać następujące informacje:
Name
John
Albert
Mora
Tommy
Tammy
Ponieważ plik jest ogromny, nie chcę, aby tak wiele przechodzi wszelkie sposoby w jednym przebiegu byłoby świetnie.
mógłbyś mi pokazać jak używać składni z kasowania w przeciwieństwie do zastąpienia? Zasadniczo, gdy robię coś takiego: 'sed '2, $/^ Name/d'' polecenie kończy się niepowodzeniem z błędem: 'sed: -e expression # 1, char 4: unknown command:' /' ' – Legend
+ 1 Właśnie to wymyśliłem :) Dziękuję, że wskazałeś mi właściwy kierunek. – Legend
'2, $' oznacza od linii 2 do końca pliku. element bezpośrednio po $ jest operacją. W przypadku tych przykładów albo 's/search/replace' lub' {/^string-to-delete/d} ' – Excalibur