Różne pożyteczne polecenia oraz wyrażenia regularne. Kurs systemu Unix 1

Podobne dokumenty
J ezyk AWK Kurs systemu UNIX

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

SED - Stream EDitor. edytor strumieniowy. Bogumił Konopka W-11/I-21 Politechnika Wrocławska

Przedstawię teraz tzw. podstawowe symbole wyrażenia regularne (BRE, Basic Regular Expression)

Znaki globalne w Linuxie

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA

1. Znajdź za pomocą programu locate wszystkie pliki które zawierają w nazwie słowo netscape locate netscape

Wyrażenia regularne. Wyrażenia regularne 1/41

Wstęp do informatyki 2011/2012. Wyrażenia regularne (sed)

1. Wyrażenia regularne. Symbole w wyrażeniach regularnych 1 :

Środowisko programisty

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

Temat zajęć: Filtry, strumienie standardowe oraz przetwarzanie potokowe. stderr

skrypt powłoki to plik tekstowy, rozpoczynający się sekwencją: pierwsza linia określa powłokę, w której wykonywany jest skrypt; druga to komentarz

Języki formalne i automaty Ćwiczenia 6

Wstęp do Informatyki dla bioinformatyków

Przekierowanie wejścia wyjścia:

Powłoka bash. Kurs systemu Unix 1

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Powłoka interpreter poleceń systemu UNIX

Linux Polecenia. Problem nadpisywania plików. Zmienna noclobber i noglob. Filtry i metaznaki. Problem nadpisywania plików. Opracował: Andrzej Nowak

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

Technologie Informacyjne - Linux 2

Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

Zastosowanie filtrów w Linuksie

Elementy wyrażeń regularnych

Podstawy JavaScript ćwiczenia

Metody numeryczne Laboratorium 2

OPCJE -A num, --after-context=num Wypisuje po pasujących liniach num linii następującego kontekstu.

Niektóre katalogi są standardowymi katalogami zarezerwowanymi do użytku przez system. Znaczenie wybranych katalogów systemowych jest następujące:

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Wyrażenie wewnątrz nawiasów jest atomem (rozpatrujemy je jako całość).

S P I S POLECEŃ LINUXA

1 Przygotował: mgr inż. Maciej Lasota

BASH - WPROWADZENIE Bioinformatyka 4

W pierwszej kolumnie wyświetlany jest identyfikator procesu (pid)

Kurs systemu Unix wykład wstępny. Kurs systemu Unix 1

Linux: System Plików

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Skanowanie OCR w aplikacji Kancelaria Komornika. Instrukcja dla użytkownika

Trochę o plikach wsadowych (Windows)

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

LABORATORIUM 6-7 WSTĘP DO SIECI TELEINFORMATYCZNYCH SYSTEM OPERACYJNY UNIX

Wyrażenia regularne. Wojciech Tabiś Łukasz Jankowski

Zakład Systemów Rozproszonych

Pracownia Komputerowa wykład III

Powłoka (shell) Powłoka ksh

Prawa dostępu do plików (1)

Systemy operacyjne. Laboratorium 3. Find. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

KARTA KURSU. Języki skryptowe

Linux Filtr grep. Opracował: Arkadiusz Curulak WSIiE TWP w Olsztynie

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

System operacyjny Linux

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Ćwiczenia Linux konsola

KaŜdy z formularzy naleŝy podpiąć do usługi. Nazwa usługi moŝe pokrywać się z nazwą formularza, nie jest to jednak konieczne.

Architektura systemów informatycznych. Powłoka systemowa Architektura procesora

Python. Skąd taka nazwa? Kurs systemu UNIX 1

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

System operacyjny Linux wybrane zagadnienia. Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu

Wykład 8: klasy cz. 4

Programowanie w języku Python. Grażyna Koba

Wstęp do systemów wielozadaniowych laboratorium 19 awk

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

Systemy operacyjne. Laboratorium 5. Awk podstawy. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

Środowisko programisty Zestaw 7

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

EDYTOR TEKSTOWY VIM WYBRANE POLECENIA. Pracownia Informatyczna 5

Jądro Powłoka System plików Programy użytkowe

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

Ustalanie dostępu do plików - Windows XP Home/Professional

Pracownia Komputerowa wykład III

Wyrażenia regularne. Regular expressions. aka. Regexp

host name: protokół SSH System plików - wprowadzenie Ścieżki dostępu

Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA

Podstawy Programowania C++

Tematy lekcji informatyki klasa 4a luty/marzec 2013

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

Technologie Informacyjne - Linux 3

Moduł 4: Strumienie, potoki, sterowanie procesami

Podstawy programowania skryptów Sh

Programowanie skryptów powłoki

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Instrukcja SO powłoka BASH i skrypty powłoki Istotne jest zrozumienie działania narzędzia history powłoki BASH. Każde polecenie wprowadzone i

Projekty zaliczeniowe Podstawy Programowania 2012/2013

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Pracownia Komputerowa wykład II

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Systemy operacyjne 12

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

Sposób tworzenia tabeli przestawnej pokażę na przykładzie listy krajów z podstawowymi informacjami o nich.

Definiowanie języka przez wyrażenie regularne(wr)

2. System uprawnień w linuxie

Transkrypt:

Różne pożyteczne polecenia oraz wyrażenia regularne Kurs systemu Unix 1

O pracach (jobs) Pracą nazwiemy proces będący pod kontrolą powłoki. Przykład: % sort addresses > mail_list & [1] 21885 % [1] oznacza numer pracy, przypisany przez aktualną powłokę Obecnie aktywne pracę możemy wyświetlić za pomocą polecenia jobs. Każda z prac znajduje może być wykonywana (running) lub zatrzymana stopped, dodatkowo może dojść znak + (aktualna praca) oraz - oznaczający pracę poprzednią. Kurs systemu Unix 2

Sterowanie pracami Do prac odwołujemy się pisząc %numer-pracy, domyślnie polecenia używają pracy bieżącej. Możliwe polecenia: bg przenosi do tła, fg przenosi z tła na pierwszy plan, bieżącą pracę możemy przenieść do tła za pomocą ^Z) Kurs systemu Unix 3

Polecenie find Rozbudowane polecenie służące do znajdywania plików oraz do wykonywania na nich pewnych operacji. Składnia: find lista-kartotek wyra»enia. Rekurencyjnie przegląda każdą kartotekę z listy kartotek Kryteria oddzielone spacją traktowane są jako połączone spójnikiem AND, spójnik OR osiągamy opcją -o. Negacja zapisywana jest za pomocą!. Kurs systemu Unix 4

Uwagi o składni Można stosować nawiasy, ale poprzedzone ukośnikiem, czyli \( oraz \). Każdy element wyrażenia jest osobnym argumentem i musi być od innych oddzielony spacją. Argumenty liczbowe występują w jednej z trzech postaci: +n, -n lub n oznaczające, odpowiednio wiecej niż, mniej niż lub dokładnie n. Kurs systemu Unix 5

Możliwości polecenia find -name nazwa-pliku pasuje do plików o nazwie zgodnej z nazw -pliku. Możliwe znaki specjalne, ale uwaga: trzeba zabronić powłoce rozwijania (za pomocą cudzysłowów). -type typpliku gdzie, typ pliku to jedna z poniższych literek: d f p l s kartoteka zwykły plik fifo (nazwany potok) łącze gniazdo -user login pasuje, gdy login jest właścicielem pliku -group gr podobnie Kurs systemu Unix 6

-size +/-n[c] jeżeli rozmiar pliku jest wyspecyfikowany przez n bloków, lub (c) znaków. -atime +/-n, -mtime +/-n pozwala znajdywać pliki do których był niedawno dostęp oraz te, które były niedawno modyfikowane (czas wyrażamy w dniach), -atime -2 oznacza pliki, do których był dostęp najpóźniej przedwczoraj. -newer filename pasuje do plików nowszych niż filename -print zawsze pasuje, drukuje ścieżkę. -ls podobnie, ale więcej informacji (jak ls -l) -exec command \; na końcu listy warunków, wykonuje polecenie dla plików, które pasują. W poleceniu {} oznacza nazwę aktualnie przeglądanego pliku. -ok command \; podobnie, ale zawsze wyświetla polecenie i Kurs systemu Unix 7

grzecznie pyta. Kurs systemu Unix 8

Przykład find czyszczący dysk find. \( -name core -o -name junk \) -print -exec rm {} \; Kurs systemu Unix 9

Wyrażenia regularne Wyrażenie regularne to opis pewnego zbioru ciągów znaków. Skojarzenia z językami formalnymi, gramatykami lewostronnymi, analizą leksykalną, automatami skończonymi są jak najbardziej uzasadnione. Składnia ulega pewnym wariacjom, ale można wyodrębnić dwie klasy: a) uproszczone b) pełne O uproszczonych to już było (np. [Cc]hap*.[1-5]?[^0-9]) Kurs systemu Unix 10

Pełne wyrażenia regularne (1) Najprostsze wr to pojedynczy znak. Opisuje ono ten właśnie znak.. opisuje dowolny znak, czyli w.n. pasuje do wino lub win3. Umieszczając dwa wr obok siebie wyrażamy ich konkatenację. * oznacza 0 lub więcej wystąpień poprzedzającego ją znaku (lub wr w nawiasie) Alternatywę wyrażeń opisuje się za pomocą, czyli np. ^(From Subject) pasuje do początku pliku z listem. Kurs systemu Unix 11

Pełne wyrażenia regularne (2) ^ pasuje do początku linii $ pasuje do końca linii (przykładowo ^$ pasuje do...?) Tu również możemy definiować znak z grupy, czyli: [aeiou], [1-9], [a-e1-9], [^A-Z]. ^ e nawiasach [] oznacza negację (dopełnienie). Początek i koniec słowa to \< oraz \>. Np. wzorzec br pasuje do słów bra i babra, natomiast wzorzec \<br tylko do tego pierwszego. Kurs systemu Unix 12

Pełne wyrażenia regularne (3)? oznacza, że poprzedzający go fragment może (lecz nie musi) wystąpić. + ma znaczenie podobne jak gwiazdka, ale wystąpień jest 1 lub więcej. Liczby wystąpień można wyrażać również za pomocą poniższych specyfikacji: a) \{n,m\} co najmniej n wystąpień, ale nie więcej niż m b) \{n\} dokładnie n wystąpień c) \{n,} co najmniej n wystąpień Specyfikację tę piszemy po wr, mniej więcej jak?, czy +. Kurs systemu Unix 13

Wyrażenia regularne (4) Wyrażenia regularne pozwalają określać bardzo bogate języki (niekoniecznie regularne), dzięki notacji \n, oznaczającej fragment dopasowany do n-tego nawiasu (licząc znaki '(' od lewej). Kurs systemu Unix 14

Przykłady Podwojone słowo: \<([A-Za-z]+) +\1\> Zmienna w C: [a-za-z_][a-za-z_0-9]* Kwota w dolarach (i centach): \$[0-9]+(\.[0-9][0-9])? Czas: (1[012] [1-9]):[0-5][0-9] (am pm) Kurs systemu Unix 15

Kurs systemu Unix 16

Wyrażenia regularne gdzie je możemy znaleźć W edytorach tekstu (np w vi), wywoływane za pomocą :/wzorzec. W programach przeglądających pliki (np. more czy less). W poleceniach grep, egrep,... We wsadowym edytorze sed. W językach programowania: awk, perl, tcl, python i wielu innych. Kurs systemu Unix 17

Programy grep oraz egrep Służą do wypisywania linii pasujących do wzorca pobranych z różnych plików. Podstawowe wywołanie to np. grep [opcje] wzorzec pliki. Używane są uproszczone wyrażenia regularne (grep), albo pełne (rozszerzone), w przypadku egrep oraz grep -E. Jeżeli użyjemy opcji -r, to w poszukiwaniach rekurencyjnie wchodzimy do kartotek. Opcja -v neguje dopasowanie: wypisujemy te, które nie pasują. Opcję -c stosujemy, gdy chcemy jedynie policzyć pasujące (niepasujące) linie. Kurs systemu Unix 18

Program SED Nazwę tłumaczymy: SED: Stream oriented, NonInteractive, Text Editor. Można stosować do automatycznego wykonywania prostych operacji edycyjnych. Najbardziej przydaje się do wykonywania regularnych podstawień w całym pliku. Kurs systemu Unix 19

Użycie SEDa sed 'lista komend edycyjnych' nazwy plików sed czyta linie z pliku i następnie stosuje do niej wszystkie komendy edycyjne... a wynik zapisuje na standardowym wyjściu. Jeżeli komendy są długie można je umieścić w pliku i skorzystać z opcji: -f nazwa-tego-pliku. Kurs systemu Unix 20

Ogólna postać polecenia edycyjnego [adres1, adres2] [funkcja] [argumenty] Za pomocą adresów wybieramy linie: 1. podając jej numery (dziesiętnie) 2. używając wyrażeń regularnych Kurs systemu Unix 21

Adresowanie Sposoby adresowania: brak adresu każda linia 1 adres każda linia pasująca do adresu 2 adresy (,) linie między linią pasującą do 1-go a pasującą do 2-go adres z! linie nie pasujące do adresu. Przy dwuadresowym trybie linie pasujące do ograniczeń sa rownież uwzględniane. Kurs systemu Unix 22

Proste przykłady Polecenie d oznacza pominięcię wskazanej linii. head -1 sed '1!d' tail -1 sed '$!d' grep <wzorec> sed '/wzorzec/!d' Wykrzyknik oznacza negację. Kurs systemu Unix 23

Przykłady nieco bardziej zaawansowane 6d usuwa szóstą linię, /^$/d usuwa puste linie, 1,10d usuwa linie od 1 do 10, 1,/^$/d usuwa linie od początku pliku do pierwszej pustej, /^$/,$d usuwa linie od pierwszej pustej do końca Zagadka: Co robi polecenie /^$/,/$/d? Kurs systemu Unix 24

Podstawianie Najbardziej użyteczne jest podstawianie, czyli polecenie s. Składnia komendy: s/<co>/<czym>/<opcje> g zastępuje wszystkie instancje, nie jedynie pierwszą Użycie: s/ala/ola/g Uwaga: w wyrażeniach regularnych w sed nawiasy piszemy jako \( oraz \). Kurs systemu Unix 25

Czym zastepujemy Ciągiem znaków (może on zawierac znaki specjalne): a) & - oznacza cały dopasowany napis. b) /d - oznacza to, co dopasowalo się do nawiasu d, przykładowo /3 Kurs systemu Unix 26

Przykłady Afirmacja liczb: sed 's/[0-9][0-9]*/& (naprawde &!)/g' Zamiana dwóch kolumn: sed 's/\(.*\):\(.*\)/\2:\1/' Przekształca: ala:kota kota:ala jola:psa => psa:jola jurek:chomika chomika:jurek Kurs systemu Unix 27

A co dla: ala:ma:kota? Kurs systemu Unix 28

AWK: pierwsza odsłona! AWK jest językiem programowania (będzie mu poświęcony następny wykład). Można go jednak traktować jako proste połączenie funkcjonalności następujących programów: grep, do wybierania interesujących linii, cut, do wybierania interesujących kolumn, tr -s [:blank:], ponieważ domyślnym separatorem jest ciąg spacji i tabulacji. Kurs systemu Unix 29

Program w awk Podstawowy program: /wzorzec1/{akcja1} /wzorzec2/{akcja2} /wzorzec3/{akcja3} Dla każdej linijki, jeżeli pasuje ona do wzorca to wykonana jest odpowiednia akcja. Najprostszy wzorzec to tekst. Pasowanie oznacza wówczas występowanie Najprostsza akcja to print. Oznacza ona wypisanie całej linii. Kurs systemu Unix 30

Dostęp do pól Zmienna $1 to pierwsze pole, $2 drugie itd. Cała bieżąca linia to $0. Przykład: wybranie z pliku dwóch kolumn i zamiana miejscami. awk '{print $3,$2 }' powyżej jako filtr, inna możliwość to awk -f program.awk dane_we1 dane_we2 > dane_wy Kurs systemu Unix 31

Składnia wyrażeń regularnych ^ początek pola $ koniec pola. 1 dowolny znak alternatywa wzorców * 0 lub więcej wystąpień tego co przed + 1 lub więcej wystąpień tego co przed? 0 lub 1 powtórzenie tewgo co przed [ ] znak z zestawu ([abcd]) [^abcd] znak spoza zestawu () nawiasy grupują podwyrażenia Kurs systemu Unix 32

Wyrażenia regularne Przykład: program wyświetlający te linie, które są liczbami /^[0-9]+(\.[0-9]+)?$/ { print $0 } W ten sposób uzyskujemy funkcjonalność programu grep. Kurs systemu Unix 33