Od OSX (BSD sed) ma pewne różnice składniowe Linux (GNU) sed pomyślałem, że należy dodać następujące z niektórych trudem nutami kopalni:
OS X (BSD) LEP znaleźć/wymienić wewnątrz (adresów) bloku (początek i wzory końcowego (/../) lub #s linia) w tym samym pliku (via & via & via & sekcja 4,20 here)
Składnia
$ sed '/start_pattern/,/end_pattern/ [operations]' [target filename]
standard znaleźć/wymienić przykłady:
$ sed -i '' '2,3 s/,\s\+/,/g' example.txt
$ sed -i '' '/DOCTYPE/,/body/ s/,\s\+/,/g' example.txt
Znajdź/wymienić przykład ze złożonych operatora i grupy (nie może pracować bez grupowania składnię z powodu strumienia wykorzystanie standardowego wejścia). Wszystkie dane przedstawione w grupy muszą być na oddzielnych liniach, albo rozdzielone w/średnikami:
Complex Operator Przykład (usunie cały wiersz zawierający mecz):
$ sed -i '' '2,3 {/pattern/d;}' example.txt
Wielu plik odnaleźć + sed:
$ find ./ -type f -name '*.html' | xargs sed -i '' '/<head>/,/<\/head>/ {/pattern/d; /pattern2/d;}'
Mam nadzieję, że to komuś pomaga!
Linia 2.5 ......? –
Czy te konkretne numery linii są znane w momencie, kiedy wywołujesz sed, lub czy w pliku znajdują się regiony, które zależą od samych danych? Podobnie jak sed powinien być aktywny tylko pomiędzy niektórymi znacznikami początku i końca? W takim przypadku użyłbym 'awk', ponieważ możesz zachować zmienne stanu między liniami. –