Wyświetlanie pierwszej linii pliku

sed q test.txt

Wyświetlenie ostatniej linii pliku

sed -n '$p' test.txt

Wyświetlenie 25 linii pliku

sed -n '25p' test.txt

Wyświetlenie 6 pierwszych linii pliku

sed '6q' test.txt

Wyświetlenie zakresu linii pliku

Wyświetla linię z zakresu od 1 do 4 pliku test.txt

sed -n '1,4' test.txt

Wyświetlenie dwóch różnych linii

Wyświetlenie 4 i 6 linii pliku

sed -n '4p;6p' test.txt
4 |
6 lsadfjla

Wyświetlenie linii od 3 do ostatniej

sed -n '3,$p' test.txt

Wyświetlenie linii zawierającej wyrażenie regularne

sed -n '/regexp/p' test.txt

Wyświetla jedną linię przd linią zawierającą wyrażenie regularne

sed -n '/regexp/{g;1!p;};h'

Wyświetla jedną linię po lini zawierającej wyrażenie regularne

sed -n '/regexp/{n;p;}'

Wyświetla jedną linię przed i po zawierającej wyrażenie regularne

sed -n -e '/regexp/{=;x;1!p;g;$!N;p;D;}' -e h

Usunięcie znaczników HTML

sed -e 's/<[^>]*>//g' index.html

Usunięcie wybranej linii z pliku

Usunięcie pierwszej linii z pliku .ssh/authorized_keys

sed -i '1d' .ssh/authorized_keys

Usunięcie pierwszych 10 linii

sed -i '1,10d' test.txt

Usunięcie ostatniej linii pliku

sed '$d' test.txt

Usunięcie zakresu linii np. od linii 5 do 7 z pliku .ssh/authorized_keys

sed -i '5,7d' .ssh/authorized_keys

Usunięcie dwóch ostatnich linii pliku

sed 'N;$!P;$!D;$d'

Usunięcie linii zawierające wyrażenie regularne

sed '/regexp/d' test.txt

Usunięcie spacji lub tabów występujących na początku linii

Usuwa spację / tabulatory jeśli występują na początku linii

sed 's/^[ \t]*//' test.txt

Usuwa spacje / tabulatory występujące na końcu linii

sed 's/[ \t]*$//' test.txt

Usuwa spacje / tabulatory występujące na początku i na końcu linii

sed 's/^[ \t]*//;s/[ \t]*$//' test.txt

Dodanie linii na początku pliku

Dodanie linii nowa pierwsza linia na początku pliku README.md

sed -i '1s/^/nowa pierwsza linia\n/' README.md

Wstawia tekst na początku / końcu każdej linii

Wstawia `--- ` na początku każdej linii

sed 's/^/--- /' test.txt

Wstawia ` ---` na końcu każdej linii

sed 's/$/ ---/' test.txt

Dodanie tekstu na końcu pierwszej linii

 sed '1s/$/ koniec lini/' test.txt
1 | koniec lini
2 |

Dodanie linii na końcu pliku

sed '$s/$/\nostatnia linia/' test.txt
1 |
2 |
3 |
4 |
5
6 lsadfjla
ostatnia linia

Zmiana parametrów w pliku /etc/ssh/sshd_config

Umożliwienie logowania się przez użytkownika root, zamienia linię #PermitRootLogin no na PermitRootLogin yes

sed -i 's/#\(PermitRootLogin \).\+/\1yes/' /etc/ssh/sshd_config

Nazwa użytkownika pobrana z polecenia id

Polecenie id wyświetla coś takiego

uid=0(root) gid=0(wheel) groups=0(wheel), 2(kmem), 3(sys), 4(tty), 5(operator), 20(staff), 31(guest)

Żeby wyświetlić nazwę użytkonika użyjemy polecenia sed

id | sed 's/^[^(]*(\([^)]*\)).*/\1/'
root

Usunięcie ostatniego znaku z wybranej linii

Usuwa ostatni znak z linii numer 4 w pliku test.txt

sed -i '4s/.$//' test.txt

Usunięcie pierwszgo i ostatniego znaku w każdej linii

sed -i 's/.//;s/.$//' test.txt

Usunięcie dwóch ostatnich znaków

echo 1234 | sed 's/.\{2\}$//'
12

Usunięcie wszystkich komentarzy

Usuwa linie zaczynające się od znaku #

sed '/^#/d' squid.conf

Usunięcie znaków spacji i tabulacji zaczynających wiersz

Usunięcie znaków spacji oraz tabulacji

cat plik.txt | sed -e 's/^[ \t]*//'

Usunięcie znaków spacji

cat plik.txt | sed -e 's/^[ ]*//'

Usunięcie pustych linii

Usuwa puste linie z pliku squid.conf

sed '/^$/d' squid.conf

Ten sam efekt można uzyskać za pomocą polecenia grep

cat squid.conf | grep '.'

Usunięcie komentarzy i pustych linii

W tym wypadku są użyte dwa polecenia oddzielone znakiem ;

sed '/^#/d; /^$/d' squid.conf

Zmiana w pliku danych z użyciem BSD SED

Normalne systemy posiadają wersję sed, która nie posiada parametru -i, który zmienia szukany wzorzec w pliku i od razu go zapisuje.

Dlatego użyjemy tutaj pliku tymczasowego a następnie zastąpimy nim oryginał.

sed -e "/^#\(PermitRootLogin\) yes/s//\1 no/" < /etc/ssh/sshd_config > /tmp/sshd_config
mv /tmp/sshd_config /etc/ssh/sshd_config

Wyświetlenie komend systemu crontab

crontab -l | sed '/^#/d' | awk '{ for (i=6; i<=NF; i++) printf("%s ", $i); printf("\n") }' | sed '/^$/d'

Oddzielenie linii pustą linią

sed 'G' test.txt
1 |

2 |

3 |

Date: 2020-10-22T01:35:23+02:00