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'