WSWZ — Laboratorium – sed
Jarosław Piersa 2013-11-29
Zadanie 1
Napisz polecenie SED, które
• wyświetli z pliku pierwsze 10 wierszy
• Wyświetli z pliku linie, które nie zawierają cyfr
• usunie w pliku puste wiersze
• wyświetli z pliku linie od tej, która zawiera słowoalado tej która zawiera słowokotek
Zadanie 2
Zamień includy ze wtylu c na c++:
• w kodzie c zamieni importy:
#include<plik.h>
na:
#include<cplik>
• wsk: można wykorzystać cytowania dopasowanych wzorców ()za pomocą\1, \2itd.
Zadanie 3
Napisz polecenie SED, które
• wstawia spację po przecinkach, kropkach średnikach i dwukropkach w zdaniach np. Na kolokwium będą na pewno vi,grep,wyrażenia regularne i możliwe,że wrócimy jeszcze do scp.
• usuwa podwójne spacje między słowami
Zadanie 4
• za pomocąwgetpobierz stronę ww wydziału (albo osoby obok) w g e t www . mat . umk . pl
• za pomocą seda usuń komentarze html tzn: <!-- komentarz -->
• rozszerz polecenie, aby usuwało również komentarze wieloliniowe – wskazówka: złam linię przed rozpoczęciem każdego komentarza – złam linię po zamknięciu komentarza
– za pomocą dopasowania zakresu usuń wielolinijkowe komentarze
1
Zadanie 5
• za pomocąGET -e adres.wwwwyświetl całą wiadomość protokołu http (wraz z nagłówkiem)
• za pomocą seda z w/w wiadomości wytnij nagłówek i zapisz do pliku, wytnij samą treść komunikatu http i zapisz do osobnego pliku,
• uwaga: nagłówek od treści oddziela pojedyncza pusta linia
Zadanie 6
• Napisz skrypt sed, który usunie komentarze z kodu Pascala
• skrypt powinien usuwać wszystkie typy komentarzy
• w tym(* *) łamane pomiędzy linami (w sedzie da się)
• Zastanów się jak rozszerzyć skrypt aby omijał komentarze w napisach tekst = "to jest (* napis *) a nie komentarz!";
Zadanie 7 (trudne)
Napisz skrypt w sed, który znajdzie złośliwe aliasowania
• znajdzalias "komenda=coś --parametry"
alias komenda2=coś2
gdziekomendajest jednym z plików wykonywalnych leżących na/bin/ lub/usr/bin
• Znalezione aliasowania, które coś przesłaniają powinny zostać zakomentowane
• Na koniec pliku wstaw napis
# edycja zakończona + data rrrr-mm-dd-gg:mm:hh
Wskazówki:
• wyszukaj nazwy plików z/usr/bini/bin, za pomocą seda połącz je w jeden ciąg nazw rozdzielonych|(alternatywa wyrażeń regularnych)
• wynik powyższego seda zapisz jako zmienną, którą wykorzysta inny sed do wychwycenia wzorców Z M I E N N A =sed ...
• Tą zmienną można teraz wykorzystać w innym skrypcie:
sed - e ’/ s / ’\ $ { Z M I E N N A } ’/ i n n y _ n a p i s / g ’
• łącznie wierszy w jedną linię:
sed - e : a - e N - e ’ s /\ n / / ’ - e ta ./ cieka
2