Progmar Marcin Załęczny

Język:

Sed w przykładach

Plik persons.txt użyty w przykładowych poleceniach (imię, rok urodzenia, wzrost, waga):

 1. Piotr   1989    184 70.2
 2. Tomasz  1994    172 60.8
 3. Paweł   2003    104 48.4
 4. Marcin  1980    174 91.6
 5. Michał  1990    168 74.9
 6. Lucjan  2000    80  44.1
 7. Paweł   2000    124 60.2
 8. Rafał   1980    174 91.6
 9. Michał  1998    139 89.1
10. Damian  1994    170 68.2

Wyświetlenie wszystkich wierszy pliku persons.txt, przy czym te wiersze, w których występuje słowo "Paweł", są wyświetlone podwójnie: sed '/Paweł/ p' persons.txt

Wyświetlenie tylko tych wierszy pliku persons.txt, które zawierają słowo "Paweł": sed -n '/Paweł/ p' persons.txt

Wyświetlenie wierszy od 2 (włącznie) do 4 (włącznie) pliku persons.txt: sed -n '2,4 p' persons.txt

Wyświetlenie wszystkich wierszy poza wierszami od 2 (włącznie) do 4 (włącznie) pliku persons.txt: sed -n '2,4 !p' persons.txt

Wyświetlenie pierwszych 4 wierszy pliku persons.txt (odpowiednik head -4 persons.txt): sed '4 q' persons.txt

Dodanie wiersza 'Doklejka' po wierszu trzecim i wyświetlenie nowej zawartości: sed '3 a Doklejka' persons.txt

Dodanie wiersza 'Przedklejka' przed każdy wiersz zawierający ciąg '99' i wyświetlenie nowej zawartości: sed '/99/ i Przedklejka' persons.txt

Zastąpienie wierszy 7 i 8 nową zawartością (plik persons.txt nie jest modyfikowany): sed '7,8 c Nowa zawartość' persons.txt

Zastąpienie wierszy zawierających ciąg '99' podanymi dwoma linijkami: sed '/99/ c Linijka #1\nLinijka #2' persons.txt

Wyświetlenie zawartości pliku persons.txt przy czym każda litera 'n' zastąpiona jest literą 'N': sed 's/n/N/g' persons.txt

Zastąpienie w każdym wierszu wszystkich wystąpień litery 'n' literą 'N' i wyświetlenie tylko zmodyfikowanych wierszy: sed -n 's/n/N/g p' persons.txt

Usunięcie wiersza pierwszgo: sed '1 d' persons.txt

Dodanie czterech spacji na początku każdej linijki (działa tylko dla niepustych linijek). Znak '&' oznacza znalezione dopasowanie: sed 's/^./ &/' persons.txt albo (działa dla wszystkich linijek): sed 's/^/ /' persons.txt

Usunięcie spacji z końca każdej linijki: sed 's/ *$//'

Usunięcie znaków \r (powrót karetki) i zapisanie zmodyfikowanej zawartości do pliku persons.txt: sed -i 's/\r//g' persons.txt

Usunięcie początkowych spacji z każdej linii pliku persons.txt i zapisanie zmian w tym pliku: sed -i 's/^ *//' persons.txt

Dodanie na początku spacji dla każdej linijki, która rozpoczyna się dowolnym znakiem z następującą po nim kropką i zapisanie zmian w przetwarzanym pliku: sed -i 's/^.\./ &/' persons.txt