Wstep do systemów wielozadaniowych laboratorium 17 --

Transkrypt

Wstep do systemów wielozadaniowych laboratorium 17 --
Ćwiczenia
Wstęp do systemów wielozadaniowych
laboratorium 17 — sed
Jarosław Piersa
Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika
2012-12-11
J. Piersa
WSWZ 2012/2013 Laboratorium 17
Ćwiczenia
Ćwiczenie 1 — Na rozgrzewkę
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łowo ala do tej
która zawiera słowo kotek
J. Piersa
WSWZ 2012/2013 Laboratorium 17
Ćwiczenia
Ćwiczenie 2 — wyrażenia regularne
w kodzie c zamieni importy:
#include<plik.h>
na:
#include<cplik>
wsk: można wykorzystać cytowania dopasowanych wzorców ()
za pomocą \1, \2 itd.
J. Piersa
WSWZ 2012/2013 Laboratorium 17
Ćwiczenia
Ćwiczenie 3 — teksty
Napisz polecenie SED, które
wstawia spację po przecinkach, kropkach średnikach i
dwukropkach w zdaniach np. Na kolokwium będą
np.sed,awk i możliwe,że wrócimy jeszcze do scp.
usuwa podwójne spacje między słowami
J. Piersa
WSWZ 2012/2013 Laboratorium 17
Ćwiczenia
Ćwiczenie 4a komentarze html
za pomocą wget pobierz stronę ww wydziału (albo osoby obok)
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
J. Piersa
WSWZ 2012/2013 Laboratorium 17
Ćwiczenia
Ćwiczenie 4b — nagłówek http
za pomocą GET -e adres.www wyś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,
J. Piersa
WSWZ 2012/2013 Laboratorium 17
Ćwiczenia
Ćwiczenie 5 — skrypty sed
Do 4a dodatkowo dopisz usuwanie pustych linii
Połącz uzyskane polecenia w skrypt tekstowy html.sed, który
automatycznie usunie komentarze i puste wiersze
wywołaj skrypt za pomocą seda
J. Piersa
WSWZ 2012/2013 Laboratorium 17
Ćwiczenia
Ćwiczenie 6 — Komentarze c.d.
Napisz skrypt sed, który usunie komentarze z kodu Pascala
skrypt powinien usuwać wszystkie typy komentarzy
w tym (* *) łamane pomiędzy linami.
Zastanów się jak rozszerzyć skrypt aby omijał komentarze w
napisach
tekst = "to jest (* napis *) a nie komentarz!";
J. Piersa
WSWZ 2012/2013 Laboratorium 17
Ćwiczenia
Ćwiczenie 7 — Łączenie wierszy
Zamień plik tekstowy na jeden długi wiersz
Wsk: wymaga polecenia N — wczytanie do bufora dodatkowo
następnego wiersza
usuń z pliku tekstowego wiszące spójniki
J. Piersa
WSWZ 2012/2013 Laboratorium 17
Ćwiczenia
Zadanie domowe 1 — Komentarze w C
Napisz skrypt w sed który usunie komentarze w C, w tym:
linijkowe // do końca wiersza
blokowe: /* w tym łamane
pomiędzy linijkami */
J. Piersa
WSWZ 2012/2013 Laboratorium 17
Ćwiczenia
Zadanie domowe 2 — Tagi html
Napisz skrypt w sed, który:
wytnie wszystkie tagi i komentarze z pliku html.
usunie puste wiersze
pozostawi sam tekst na stronie
J. Piersa
WSWZ 2012/2013 Laboratorium 17
Ćwiczenia
Zadanie domowe 3 — Nadpisujące aliasy
Napisz skrypt w sed, który
Na początku pliku wstawi linię
# plik edytowany automatytcznie przez seda
Wyszuka złośliwych aliasowań:
alias "komenda=coś --parametry"
alias komenda2=coś2
gdzie komenda jest 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 wstawi napis
# edycja zakończona + data rrrr-mm-dd-gg:mm:hh
J. Piersa
WSWZ 2012/2013 Laboratorium 17
Ćwiczenia
Zadanie domowe 3 — Nadpisujące aliasy
Wskazówka:
wynik wykonania seda zapisz jako zmienną, którą wykorzysta
inny sed do wychwycenia wzorców
np. ZMIENNA=echo "Jakiś napis"
polecenie: sed -e ’/s/’$ZMIENNA’/jakiś inny napis/g’
łącznie wierszy w jedną linię:
sed -e:a -e N -e ’s/\n/ /’ -e ta ./ścieżka
J. Piersa
WSWZ 2012/2013 Laboratorium 17