USUX W07

Dokument: pdf (107.1 KB)
  • 6 stron
Opublikowany 2017-07-23 02:12:13

Wykład 7 Filtry 1. Program grep ➔ Przetwarza strumień wejściowy i pliki wejściowe i znajduje wzorzec. Cała linia ze wzorcem jest wysyłana na wyjście ➔ grep [opcje] wzorzec [plik] ➔ wzorce ◦ ^ początek wiersza ◦ $ koniec wiersza ◦ . jeden dowolny znak ◦ *dowolna liczba powtórzeń poprzedzającego wyrażenia ◦ [] jeden znak z listy ◦ [-] jeden znak z zakresu ◦ \ pozwala zacytować znak specjalny ➔ rozszerzony zestaw znaków ◦ + 1 lub więcej wystąpień poprzedniego wyrażenia ◦ ? 0 lub 1 wystąpienie ◦ {n} dokładni n wystąpień poprzedzającego wyrażenia ➔ "wzorzec" ● wybrane opcje ➢ -v – wiersze, które nie pasują do wzorca i bloku stdout ➢ -c tylko liczba dopasowanych lini/wierszy ● Wersje programu grep ➢ grep – podstawowy ➢ fgrep – brak znaków specjalnych (wzorce uproszczone) ➢ egrep – zestaw rozszerzony znaków Przykłady: ps -ef | grep sshd ls -a | grep '^\..*' ls -a | grep '^\.' 2. Edytor strumieniowy sed • Edytor z rodziny vim itd • wykonuje program i przetwarza strumień • sed [-n] 'program' [plik...] - wersja uproszczona, niejawnie -e bo jeden program • sed [-n] -e 'program' [-e 'program']... [-f plik_program]... [plik...] 2.1 Program • [adres] polecenie [argumenty] • [adres] {lista poleceń } 2.2 Adresowanie • 2.2.1 Adresy numeryczne ◦ [nr1[,nr2]] ◦ licznik wierszy kumuluje dla wszystkich źródeł wejściowych ◦ $ostatni wiersz w ostatnim pliku • 2.2.2 Adresowanie kontekstu ◦ [/wzorzec1[/][, /wzorzec2[/]]] ◦ /wzorzec/ \znak wzorzec znak ◦ znaki specjalne ▪ ^ $ . * [] [-] [^] \ ▪ \n znak nowej linii ▪ \( \) pole ze wzorcem – pozwala modyfikować to co znaleźlismy (grep nie pozwala) ▪ \nr odwołanie o pola nr 2.3 Polecenia • 2.3.1 Polecenia edycyjne ◦ jednoliterowa ◦ moga być podane argumenty dla polecenia ◦ [adres] d – usuwanie ◦ [adres] n -wczytanie nowej lini do bufora roboczego, bieżąca stdout ◦ [adres] a \ - wstawia tekst za dopasowaną linią tekst ◦ [adres]i \ - -||- przed tekst ◦ [adres]c \ - -||- zamiast (zamienia linię) tekst ◦ [adres]s /wzorzec/tekst/flagi • 2.3.2 Polecenia wejścia wyjścia ◦ [adres] p – przesyła na stdout ◦ [adres] = - przesyła numery linii na stdout ◦ [adres] w plik – przesyła do pliku ◦ [adres] r plik – wstawia zawartość pliku za dopasowaną linię • 2.3.3 Polecenia sterujące • [adres]! polecenie • [adres] {lista poleceń} • :etykieta • [adres]b etykieta – skok do etykiety (jeżeli nie ma to na koniec programu) • [adres]t etykieta – skok warunkowy • [adres]q etykieta – skok na koniec • #n – opcja -n, nie komentarz !!! Przykłady: ps -ef | sed -n '/sshd/p' ls -a | sed -n '/^\..*/p' - wycięcie rdzenia nazwy ls | sed -n 's/\(.*\)\.txt/\1/p' wyrażenie specjalne łańcuch znaków & cały wzorzec \nr pole we wzorcu g – zamienia globalnie n – zamienia n wierszy w linii n= 1 – 512 p – przesyła do stdout w plik – wysyła do pliku -zamiana wzorca " w pliku" (skrypt) sed 's /' $1 '/' $2 '/ ' $3 3. Program awk • procesor tekstu, bardziej zaawansowany sed • awk [-F separator_pola] 'program' [[-v] zmienna = wartość]... [plik]... • awk [-F separator_pola] -f plik_programu [[-v] zmienna = wartość]... [plik]... 3.1 Sporsób przetwarzania • podział danych wejściowych ◦ rekordy - RS (separator rekordu, składa się z pól) ◦ pola – FS (separator rekordu) • odwołania do pól i rekordów • $0 bieżący rekord • $1, $2 ... kolejne pola rekordu • $NF ostatnie pole • NF liczba pól w bieżącym pliku (dotychczas wczytanych) • FNR liczba pól w bieżącym pliku (dotychczas wczytanych z bieżącego pliku) 3.2 Program • wzorzec {akcja} • wzorzec {blok akcji} Jeżeli pominiemy wzorzec akcja będzie wykonana dla wszytskich rekordów Jeżeli pominiemy akcję -> wysłanie rekordu do stdout # komentarz 3.3 Wzorce • specjalne ◦ BEGIN {akcja} ◦ END {akcja} • izolowane wyrażenia specjane ◦ /wzorzec/ {akcja} ◦ ^ & \n . * + ? [] [-] [^ ] ◦ | jeden znak z pary • ogólne wyrażenia wartościowane jako prawda lub fałsz ◦ np. ▪ string ~ /wzorzec/ {akcja} ▪ string !~ /wzorzec/ {akcja} ▪ string1 == string2 {akcja} ▪ n1> n2 {akcja} 3.4 Akcje • polecenia wejścia/wyjścia • polecenia i pętle sterujące • operacje przypisania zmienna operator wyrażenie

Tagi:

Komentarze do: USUX W07 • 0