konspekt1 - asso-zs1

Transkrypt

konspekt1 - asso-zs1
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
PODSTAWOWE
POLECENIA I FILTRY
W SYSTEMIE OPERACYJNYM
UNIX/LINUX
1 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Przegląd istotnych cech powłoki (ang. shell)
•
Proste i złoŜone polecenia ( ;
$
$
$
$
•
ls
cp
cp
ps
&
|
–l /bin
old new && rm old
old new || rm old
| grep sshd
|| )
rm jeŜeli cp
rm jeŜeli nie cp
przekierowanie wyjścia ps na wejście grep
Procesy drugoplanowe (ang. background), sterowanie wraca do powłoki, bez
oczekiwania na zakończenie procesu, zwracany jest kod zakończenia 0
$ /usr/local/bin/netscape &
$ cmd1 & cmd2 & cmd3
$ cmd1 ; cmd2 ; cmd3
•
&&
Przekierowywanie wejść/wyjść ( <
$ ls -l > my_files
$ cat < input.data
$ date >> logs
równoległe wykonanie trzech poleceń
sekwencyjne wykonanie trzech poleceń
>
>> )
zamiast do stdout (1) dane do my_files
zamiast z stdin (0) dane z input.data
zamiast do stdout (1) dołącza dane do logs
2 / 81
1
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Przegląd istotnych cech powłoki (ang. shell)
• „Dzikie karty”
$ ls file*
• Zmienne powłoki i środowiska
$ PATH=$PATH:.
• Zastosowanie znaku tyldy
$ cd ~kornj
• Zasady przywoływania
$ file="foo"
$ cat "my file"
my file
my file
$ cat "my $file"
my foo
$ cat 'my $file'
my $file
$ cat my file
3 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Cechy interakcyjności
•
•
•
•
•
•
•
Pamiętana jest historia poleceń
Edytowanie linii poleceń
Dopełnianie nazwy pliku (przycisk tab)
Dopełnianie polecenia
Wiązanie kluczy
Korekta pisowni
Kontrolowanie zadań
4 / 81
2
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Skrypty na poziomie powłoki
• Skrypt powłoki jest plikiem tekstu regularnego, który
zawiera polecenia powłoki lub UNIX
• Przed wykonaniem skryptu naleŜy nadać mu prawa
wykonania
• Skrypty są bardzo uŜyteczne podczas automatyzacji
powtarzających się zadań, zwłaszcza czynności
administratora oraz do przechowywania poleceń, które
maja być wykonane w przyszłości
5 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Języki skryptowe a język C
• Korzyści ze stosowania skryptów powłokowych
–
–
–
–
Łatwa współpraca z innymi programami
Prosta praca z plikami
Prosta praca z napisami
Brak konieczności kompilacji
• Braki skryptów powłokowych
– Wolniejsze niŜ program napisany w C
– Niezbyt dobrze przystosowane do potrzeb projektowania
algorytmów i struktur danych
6 / 81
3
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Podstawowe narzędzia do operowania na
plikach i katalogach
• pwd
•
•
•
•
•
•
•
cat
more, less
ls
rm
mv
cp
touch
• ed, vi, emacs, nano
podaje nazwę aktualnego
katalogu
łączy pliki
pokazują zawartość pliku
listuje zawartość katalogu
usuwa plik
zmienia nazwę pliku
kopiuje plik
tworzy pusty plik lub aktualizuje
datę jego modyfikacji
edytory tekstu
7 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Podstawowe narzędzia do operowania na
plikach i katalogach
•
•
•
•
•
•
•
ln
tworzy dowiązanie do pliku
mkdir i rmdir
tworzy i usuwa katalog
mount, umount zarządzają punktami montowania
lpr
wydruk zawartości pliku
wc
podlicza słowa, znaki w pliku
diff
porównuje zawartość dwóch plików
file
identyfikuje typ pliku
8 / 81
4
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenia operowania atrybutami pliku
• chmod
• chown
• chgrp
zmiana praw dostępu do pliku
zmiana właściciela pliku
zmiana grupy związanej z plikiem
• Tylko właściciel lub super uŜytkownik mogą zmieniać
atrybuty pliku
• Po utworzeniu pliku domyślne prawa przypisywane plikowi
są modyfikowane przez wartość przypisana za pomocą
polecenia umask
9 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Prawa dostępu
- - - - - - - - r w x r w x r w x
user
group
others
---------
000
rwxr-x---
750
user: read, write, execute
group: read, execute
rw----rw-
606
user: read, write
others: read, write
10 / 81
5
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenie chmod
Tryb dostępu symbolicznego [ugoa…][+–=][rwxs]
przykład: chmod a+r file
Tryb dostępu oktalnego (suid, sgid | user | group | others)
oktalnie
read
write
execute
0
1
2
3
4
5
6
7
no
no
no
no
yes
yes
yes
yes
no
no
yes
yes
no
no
yes
yes
no
yes
no
yes
no
yes
no
yes
przykład: chmod 400 file
11 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenia zarządzania procesami
• ps
• kill
• wait
• nohup
• sleep
• nice
monitoruje stan procesów
wysyła podany sygnał do określonego
procesu (domyślnie TERM)
proces rodzicielski czeka na zakończenia
wykonywania się procesu potomnego
czyni polecenie odpornym na sygnały hangup
i terminate
przejdź w stan uśpienia na okres czasu podany
w sekundach
uruchom procesy ze zmodyfikowanym
priorytetem
12 / 81
6
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Wprowadzenie do filtrów
• Klasa narzędzi systemu Unix nazywana filtrami.
– Narzędzia, które czytają ze standardowego wejścia,
przekształcają (obrabiają) plik i wynik zapisują na standardowe
wyjście
• Stosowanie filtrów moŜe rozumiane jako programowanie
zorientowane na dane.
– KaŜdy krok obliczeń filtra przekształca strumień (ang. stream)
danych.
13 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Przykłady filtrów
• sort
– wejście: linie danych z pliku
– wyjście: posortowane linie z pliku
• grep
– wejście: linie danych z pliku
– wyjście: linie, które odpowiadają zdefiniowanemu wzorcowi
• awk
– filtr programowalny (interpretowalny język wyszukiwania i
przetwarzania wzorców)
14 / 81
7
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Programy w systemie UNIX
• Źródła wejść:
– Argumenty programu
[informacja strująca]
– Zmienne środowiskowe
[informacje o stanie]
– Standardowe wejście
[dane]
• Elementy wyjścia:
– Zwracany kod statusu
[informacje sterujące]
– Standardowe wyjście [dane]
– Standardowe wyście diagnostyczne
[komunikaty o błędach]
15 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Potoki
• Wyjście jednego programu staje się wejściem następnego
– Wykorzystywana jest koncepcja potoków systemu UNIX
• Przykład: $ who | wc -l
– Oblicza liczbę zalogowanych uŜytkowników
• Potoki mogą być długie i złoŜone
16 / 81
8
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
cat: najprostszy filtr
• Polecenie cat kopiuje bez zmian swoje wejście na wyjście
(filtr toŜsamościowy). Gdy na wejście podana zostanie
lista plików, wtedy filtr łączy je i przekierowuje na
standardowe wyjście stdout
•
• Niektóre opcje:
-n numeruje linie wyjściowe (począwszy od 1)
-v wyświetla znaki kontrolne w postaci widocznej (np. ^C)
cat file*
ls | cat -n
17 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
W czym tkwi róŜnica?
• Oba przedstawione poniŜej polecenia przesyłają dane do
polecenia (command) z pliku zamiast z klawiatury
(standardowego wejścia):
$ cat file | command
lub
$ command < file
18 / 81
9
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Dodatkowy proces
$ cat file | command
cat
command
$ command < file
command
19 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenie head
• Pokazuje kilka pierwszych linii ze wskazanego pliku
• Składnia: head [-n] [filename...]
-n – liczba wyświetlanych danych, domyślnie jest ich 10
filename... – lista nazw wyświetlanych plików
• W przypadku podania więcej niŜ jednej nazwy pliku,
początek kaŜdego wyświetlanego pliku poprzedzony jest
napisem
– ==>filename<==
20 / 81
10
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenie tail
• Pokazuje końcowa część pliku
• Składnia: tail +|-numer [lbc] [f] [filename]
lub: tail +|-numer [l] [rf] [filename]
+numer – kopiowanie rozpoczyna się w odległości numer jednostek
danych od początku pliku; jeśli numer jest niezdefiniowany, to
domyślnie jest równy 10
-numer – kopiowanych jest numer ostatnich jednostek danych z pliku
l,b,c – jednostki numer wyraŜone są w liniach/blokach/znakach
r – drukuje odwrotnym porządku (tylko linie)
f – jeśli wejściem nie jest potok, to polecenie nie kończy się po
napotkaniu końca pliku, ale czeka w pętli. Jest to przydatne w
przypadku konieczności monitorowania pliku, który jest zapisywany
przez inny proces.
21 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Przykłady poleceń head i tail
head /etc/passwd
head *.c
tail +20 /etc/passwd
ls -lt | tail -3
head –100 /etc/passwd | tail -5
tail –f /usr/local/httpd/access_log
22 / 81
11
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenie tee
Polecenie Unix
Standardowe wyjście
Lista plików
• Kopiuje standardowe wejście do standardowego
wyjścia i do jednego lub więcej plików
– Przechwytuje natychmiast wyniki filtrowania danych w
potoku
23 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenie tee (cd.)
• Składnia: tee [ -ai ] file-list
-a – dopisuje do wyjściowego pliku (nie nadpisuje); domyślnie
funkcjonuje nadpisywanie (zastępowanie) danych w pliku.
-i - ignoruje przerwania
file-list – jeden lub więcej plików przechwytujących wyjście
• Przykłady
ls | head –10 | tee first_10 | tail –5
who | tee user_list | wc
24 / 81
12
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Pliki tekstowe Unixa: ograniczniki danych
Znak Tab
John
Anne
Andrew
Tim
Arun
Sowmya
Znak |
99
75
50
95
33
76
COMP1011|2252424|Abbot, Andrew John |3727|1|M
COMP2011|2211222|Abdurjh, Saeed |3640|2|M
COMP1011|2250631|Accent, Aac-Ek-Murhg |3640|1|M
COMP1021|2250127|Addison, Blair |3971|1|F
COMP4012|2190705|Allen, David Peter |3645|4|M
COMP4910|2190705|Allen, David Pater |3645|4|M
Znak dwukropka
root:ZHolHAHZw8As2:0:0:root:/root:/bin/ksh
jas:nJz3ru5a/44Ko:100:100:John Shepherd:/home/jas:/bin/ksh
cs1021:iZ3sO90O5eZY6:101:101:COMP1021:/home/cs1021:/bin/bash
cs2041:rX9KwSSPqkLyA:102:102:COMP2041:/home/cs2041:/bin/csh
cs3311:mLRiCIvmtI9O2:103:103:COMP3311:/home/cs3311:/bin/sh
25 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenie cut: wybór kolumn
•
Polecenie cut moŜe drukować wybrana część linii
wejściowych.
– moŜna wybrać kolumny (domyślnie oddzielone znakami tabulacji)
– moŜna wybrać zakres pozycji listowanych znaków
•
Niektóre opcje:
-f listOfCols : drukuje tylko wybrane kolumny (oddzielone
znakiem Tab lub innym określonym opcją -d)
-c listOfPos : drukuje tylko znaki z określonych pozycji
-d c : definiuje znak c jako separator kolumn
•
Listy podawane są w postaci zakresów (np. 1-5) lub
znaków oddzielonych przecinkami (np. 2,4,5).
26 / 81
13
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Przykłady uŜycia cut
cut -f 1 < data
cut -f 1-3 < data
cut -f 1,4 < data
cut -f 4- < data
cut -d'|' -f 1-3 < data
cut -c 1-4 < data
nie ma sposobu odwołania się do ostatniej kolumny
bez obliczenia liczby kolumn
27 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenie paste: łączenie kolumn
•
Polecenie paste wyświetla na wyjściu „równolegle”
zawartość kilku plików tekstowych.
•
Jeśli wejściem sa pliki a, b, c, to
– pierwsza linia wyjściowa składa się z pierwszych linii
plików a, b, c
– druga linia wyjściowa składa się z drugich linii plików
a, b, c,
– itd.
•
Linie z kaŜdego pliku sa oddzielane od siebie
znakiem Tab.
•
Jeśli pliki sa róŜnej długości, na wyjściu wyświetlane
są wszystkie linie z najdłuŜszego pliku z pustymi
ciągami w miejsce brakujących linii plików
krótszych.
1
2
1
2
3
4
5
6
3
4
5
6
28 / 81
14
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Przykład uŜycia polecenia paste
cut -f 1 < data > data1
cut -f 2 < data > data2
cut -f 3 < data > data3
paste data1 data3 data2 > newdata
29 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenie sort: sortowanie linii pliku
• Polecenie sort kopiuje dane z wejścia na wyjście, dbając
aby wyjście linie zostały uporządkowane zgodnie z
Ŝądaniem.
– Domyślnie sortowanie jest realizowane na podstawie porównania
kodów ASCII całej linii.
• Inne cechy polecenia sort:
– rozróŜnia dane tekstowe, występujące w kolumnach (potrafi sortować
według innych niŜ tylko pierwsza kolumna)
– rozróŜnia liczby i właściwie je sortuje
– moŜe sortować pliki pobierane z dysku jak równieŜ potrafi działać
jako filtr danych wejściowych.
– jest w stanie sortować bardzo duŜe pliki
30 / 81
15
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenie sort: opcje
• Składnia: sort [-dftnr] [-o filename] [filename(s)]
-d porządek alfabetyczny (słownikowy); wpływ na porządek
sortowania mają jedynie litery, cyfry i spacje
-f ignoruje wielkość liter (tekst sortowany jest wg małych liter)
-t określa ograniczniki kolumn
-n porządek numeryczny, sortowanie zgodnie z wartościami
arytmetycznymi, nie zaś wg pierwszej cyfry
-r sortowanie w odwrotnym porządku
-o filename – zapisuje wyjście do pliku o nazwie filename; nazwa
pliku moŜe być nazwą pliku wejściowego
• ... i wiele innych opcji.
31 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenie sort: pozycje pól sortowania
•
Ogranicznik : -td
•
Stary sposób:
+field1[.char1][options] [-field2[.char2][options]
+2.1
–3
+0
–2
+3n
Z wyłączeniem field2
Startuje od 0 (inaczej niŜ w przypadku cut, które staruje od 1)
•
Nowy sposób (POSIX):
-k field1[.char1][options][,field2[.char2][options]]
-k2.1
–k0,1
–k3n
Włącznie z field2
Startuje od 1
32 / 81
16
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Przykłady uŜycia polecenia sort
sort +2nr < data
sort –k2nr data
sort -t: +4 /etc/passwd
sort -o mydata mydata
33 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenie uniq: pomija powtarzające się
elementy
• Usuwa duplikaty wierszy z danych wejściowych
• Składnia: uniq [ -cdu] [input-file] [ output-file]
-c zawiesza działanie opcji -u i -d oraz generuje raport wyjściowy listując
kaŜdy wiersz wraz z liczbą jego powtórzeń
-d listuje jedynie powtarzające się wiersze
-u listuje tylko te wiersze, które nie powtarzają się
–
Domyślnymi opcjami są przełączniki -d i -u
34 / 81
17
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenie wc: wynik podsumowania
• Narzędzie zliczania słów, wc, zlicza liczbę wierszy,
znaków lub słów
• Opcje:
-l
-w
-c
zlicza wiersze
zlicza słowa
zlicza znaki
• Domyślnie: zlicza linie, słowa i znaki
35 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Przykład wc i uniq
who | sort | uniq –d
wc my_essay
who | wc
sort file | uniq | wc –l
sort file | uniq –d | wc –l
sort file | uniq –u | wc -l
36 / 81
18
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenie tr: przekształcanie znaków
• Kopiuje dane ze standardowego wejścia na standardowe
wyjście z jednoczesnym zastępowaniem lub usuwaniem
wybranych znaków
• Składnia: tr [ -cds ] [ string1 ] [ string2 ]
-d
-c
-s
usuwa z wejścia wszystkie znaki zawarte w string1
uzupełnia znaki w string1 w odniesieniu do całego zbioru
znaków
ASCII
kompresja wszystkich napisów powtarzanych znaków
wyjściowych, występujących w string2 w pojedynczy znak.
37 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
tr (cd.)
• tr czyta dane ze standardowego wejścia.
– KaŜdy znak nie pasujący do znaków w string1 jest przesyłany bez
zmian na standardowe wyjście
– KaŜdy znak pasujący do znaków w string1 jest zamieniany na
odpowiadający mu znak ze string2 przesyłany na standardowe
wyjście
• Przykłady:
$
$
$
$
tr
tr
tr
tr
s z
so zx
a-z A-Z
–d a-c
zastępuje wszystkie wystąpienia s na z
zastępuje wszystkie wystąpienia s na z oraz o na x
zastępuje wszystkie małe litery wielkimi
usuwa wszystkie znaki a-c
38 / 81
19
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
UŜycie tr
• zmień ogranicznik
$ tr ‘|’ ‘:’
• przepisz liczby
$ tr ,. .,
• importuj plik DOS \ Windows
$ tr –d ’\r’ < dos_file
• znajdź znaki ASCII w pliku binarnym
$ tr –cd ’\n[a-zA-Z0-9 ]’ < binary_file
39 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Co to są wyraŜenia regularne?
• WyraŜenie regularne (regex) opisuje zbiór moŜliwych
napisów wejściowych.
• WyraŜenia regularne są typowe dla systemu Unix, np. w:
– vi, ed, sed i emacs
– awk, tcl, perl i Python
– grep, egrep, fgrep
• WyraŜenia regularne wywodzą się z podstawowej
koncepcji informatyki nazywanej gramatykami
regularnymi, uŜywanymi w teorii automatów skończonych.
40 / 81
20
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
WyraŜenia regularne
• Najprostszymi wyraŜeniami regularnymi są ciągi literałów
dopasowywane do innych.
• Mówi się, Ŝe ciąg znaków jest dopasowany do wyraŜenia
regularnego, jeśli zawiera właściwy podciąg.
41 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Przykład wyraŜenia regularnego
wyraŜenie regularne
c k s
UNIX Tools rocks.
pasuje
UNIX Tools sucks.
pasuje
UNIX Tools might suck.
nie pasuje
42 / 81
21
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
WyraŜenia regularne
WyraŜenia regularne mogą być dopasowane do łańcucha
znaków (napisu) w więcej niŜ jednym miejscu.
a p p l e
wyraŜenie regularne
Scrapple from the apple.
dopasowanie 1
dopasowanie 2
43 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
WyraŜenia regularne
WyraŜenie regularne w postaci . (kropka) pasuje do
dowolnego znaku.
wyraŜenie regularne
o .
For me to poop on.
dopasowanie 1
dopasowanie 2
44 / 81
22
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Klasy znaków
Znak klasy [] (nawias kwadratowy) jest uŜywany do
dopasowania dowolnego wyspecyfikowanego zbioru znaków.
wyraŜenie regularne
b [eor] a t
beat a brat on a boat
dopasowanie 1
dopasowanie 2
dopasowanie 3
45 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Zanegowana klasa znaków
Klasy znaków moŜna wykluczyć z procesu dopasowania
za pomocą wyraŜenia o składni [^].
wyraŜenie regularne
b [^eo] a t
beat a brat on a boat
pasuje
46 / 81
23
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Więcej o klasach znaków
[aeiou] dopasowywuje do dowolnego znaku a, e, i, o lub u
[kK]orn oznacza dopasowanie do korn lub Korn
Klasy znaków mogą takŜe specyfikować zakresy znaków:
– [1-9] oznacz to samo co zapis [123456789]
– [abcde] jest równowaŜne [a-e]
– MoŜna łączyć wiele zakresów
[abcde123456789] jest rónowaŜne [a-e1-9]
– ZauwaŜmy, Ŝe znak – ma specjalne znaczenie w obrębie klasy
znaków tylko wtedy, gdy uŜyty jest do zdefiniowania zakresu,
[-123] oznaczałby dopasowanie do znaków -, 1, 2 lub 3
47 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Nazwana klasa znaków
• Do powszechnie stosowanych klas znaków moŜna
odwoływać się poprzez nazwę (alpha, lower, upper, alnum,
digit, punct, cntl)
• Składnia [:name:]
– [a-zA-Z]
– [a-z0-9]
– [45a-z]
[[:alpha:]]
[[:alnum:]]
[45[:lower:]]
• Jest to waŜne w przypadku konieczności zapewnienia
przenaszalności pomiędzy róŜnymi językami narodowymi.
48 / 81
24
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Podstawowe znaki specjalne
(tzw. kotwice, ang. anchors)
• Znaki specjalne są uŜywane do dopasowania początku
lub końca linii (lub jednego i drugiego).
• ^ oznacza dopasowanie początku linii
• $ oznacza dopasowanie końca linii
49 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Przykład
^ b [eor] a t
wyraŜenie regularne
beat a brat on a boat
pasuje
wyraŜenie regularne
b [eor] a t $
beat a brat on a boat
pasuje
^word$
^$
50 / 81
25
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Powtórzenia
Znak specjalny * oznacza zero lub więcej wystąpień
pojedynczego wyraŜenie regularnego poprzedzającego
znak *.
51 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Przykład
y a * y
wyraŜenie regularne
I got mail, yaaaaaaaaaay!
pasuje
wyraŜenie regularne
o a * o
For me to poop on.
pasuje
.*
52 / 81
26
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Zakresy powtórzeń
• Zakresy moŜna definiować takŜe w postaci:
– {n,m} – notacja określa zakres powtórzeń bezpośrednio
poprzedzających regex
– {n} oznacza dokładnie n wystąpień
– {n,} oznacza przynajmnie n wystąpień
– {n,m} oznacza przynajmniej n wystąpień, ale nie więcej niŜ
m wystąpień
• Przykład:
– .{0,} ⇒ .*
– a{2,} ⇒ aaa*
53 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
PodwyraŜenia
• Jeśli chcemy zgrupować część wyraŜenia tak, aby *
odnosiło się nie tylko do poprzednich znaków, to naleŜy
uŜyć notacji ( ).
• PodwyraŜenia traktowane są podobnie jak pojedynczy
znak
– a* oznacza dopasowanie 0 lub więcej wystąpień a
– abc* odpowiada wzorcom ab, abc, abcc, abccc, …
– (abc)* odpowiada wzorcom abc, abcabc, abcabcabc, …
– (abc){2,3} odpowiada wzorcowi abcabc lub abcabcabc
54 / 81
27
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
grep
• nazwa grep pochodzi od polecenia edytora ed do
przeszukiwania “global regular expression print” albo
g/re/p
• polecenie było na tyle przydatne, Ŝe zaimplementowano je
jako samodzielne narzędzie
• istnieją warianty polecenia, m.in.: egrep i fgrep
• polecenie grep jest np. przydatne gdy chcemy znaleźć
plik zawierający określoną frazę, nie pamiętamy jednak
jego nazwy
55 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenia z rodziny grep
• grep – uŜywa wyraŜeń regularnych do dopasowania
wzorców (ang. pattern matching)
• fgrep – (file grep) nie uŜywa wyraŜeń regularnych,
dopasowuje jedynie stałe łańcuchy znaków, moŜe jednak
pobrać taki łańcuch z pliku
• egrep – (extended grep) uŜywa bardziej rozbudowanego
zestawu wyraŜeń regularnych, ale nie umoŜliwia
stosowania odwołań wstecznych (ang. backreferencing),
najszybsze polecenie z rodziny grep
• agrep – (approximate grep) nie ujęte w normach
56 / 81
28
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Składnia wyraŜeń regularnych dla poleceń
rodziny grep
• polecenia grep i egrep wykorzystują ideę wyraŜeń
regularnych
• grep i egrep mają róŜną składnię wyraŜeń regularnych:
– grep:
– egrep:
BRE
ERE
• Przykładowe róŜnice w składni:
– grep:
– egrep:
\( ,
( ,
\) ,
) ,
\{ ,
{ ,
\}
}
57 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Zabezpieczenie zestawu znaków wyraŜeń
regularnych dla grep
PoniewaŜ wiele spośród znaków uŜywanych w wyraŜeniach
regularnych ma równieŜ specjalne znaczenie dla powłoki,
wskazane jest więc umieszczanie wyraŜeń regularnych w
apostrofach
– zabezpiecza to znaki specjalne przed interpretowaniem ich przez
powłokę
– wygodniej jest przyjąć, Ŝe taka ochrona zestawu znaków w
wyraŜeniu regularnym jest zawsze niezbędna, niŜ analizować
kaŜdy przypadek
58 / 81
29
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
UŜycie znaków specjalnych jako zwykłych
symboli dla grep i egrep
• w niektórych przypadkach moŜemy chcieć uŜyć znaków
specjalnych w ich podstawowym znaczeniu, jako zwykłych
symboli
• w tym celu poprzedzamy znak specjalny symbolem \
(backslash)
• np. jeŜeli szukamy łańcucha a*b*
– uŜycie wyraŜenia 'a*b*' pozwoli wyszukać łańcuch zawierający zero
lub więcej liter a, po których występuje zero lub więcej liter b - nie
tego oczekiwaliśmy!
– poprawnie skonstruowane wyraŜenie regularne 'a\*b\*' – w tym
przypadku gwiazdki nie są traktowane jako symbole specjalne
59 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
egrep: symbol alternatywy
• wyraŜenia regularne pozwalają na uŜycie znaku
alternatywy | w celu dopasowania jednego lub więcej
podwyraŜeń, np.:
– do(K|T)en pasują ‘Ken’ albo ‘Ten’
– do ^(From|Subject): pasują typowe linie From i Subject z
nagłówka typowej wiadomości email (dopasowanie do łańcucha
znaków, w którym początek linii rozpoczyna się znakami ‘From’
lub ‘Subject’, po których następuje ‘:’)
• do ograniczenia zakresu działania alternatywy uŜywane
są podwyraŜenia, np:
– do At(ten|nine)tion pasują “Attention” albo “Atninetion”
– do Atten|ninetion pasują “Atten” albo “ninetion”
60 / 81
30
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
egrep: powtórzenia
• symbol * (gwiazdka) oznacza zero lub więcej wystąpień
poprzedzającego go znaku (bądź podwyraŜenia)
• symbol + (plus) oznacza jedno lub więcej wystąpień
poprzedzającego go znaku (bądź podwyraŜenia)
ekwiwalentem symbolu + jest zapis {1,}
do abc+d pasują ‘abcd’, ‘abccd’, albo ‘abccccccd’, ale nie pasuje ‘abd’
do abc?d pasaują ‘abd’ albo ‘abcd’, ale nie pasuje ‘abccd’
do abc+d pasują ‘abcd’, ‘abccd’, ‘abccccccd’ albo ‘abd’
61 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
egrep: powtórzenia (cd.)
• symbol ? (znak zapytania) oznacza opcjonalne
wystąpienie znaku znajdującego się bezpośrednio przed
znakiem zapytania
do July? pasują ‘Jul’ albo ‘July’
ekwiwalentem dla ? jest {0,1}
ekwiwalentem dla July? moŜe być (Jul|July)
• Symbole *, ? i + mogą być uŜywane w stosunku do
pojedynczych znaków jak i całych podwyraŜeń, np.:
– do(a*c)+ pasują ‘c’, ‘ac’, ‘aac’ albo ‘aacaacac’, ale nie pasują ‘a’
lub pusta linia
62 / 81
31
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
grep: odwołania wsteczne
• Sometimes it is handy to be able to refer to a match that
was made earlier in a regex
• This is done using backreferences
– \n is the backreference specifier, where n is a number
• For example, to find if the first word of a line is the same
as the last:
– ^\([[:alpha:]]\{1,\}\).*\1$
– The \([[:alpha:]]\{1,\}\) matches 1 or more letters
63 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Przykłady uŜycia wyraŜeń regularnych dla
egrep
• nazwy zmiennych w C
– [a-zA-Z_][a-zA-Z_0-9]*
• kwoty w dolarach (opcjonalnie z centami)
– \$[0-9]+(\.[0-9][0-9])?
• godzina
– (1[012]|[1-9]):[0-5][0-9] (am|pm)
• nagłówi HTML <h1> <H1> <h2> …
– <[hH][1-4]>
64 / 81
32
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Składnia poleceń rodziny grep
grep [-hilnv] [-e expression] [filename]
egrep [-hilnv] [-e expression] [-f filename] [expression] [filename]
fgrep [-hilnxv] [-e string] [-f filename] [string] [filename]
-h
-i
-l
-n
-v
-x
-f filename
nie wyświetla nazw plików
ignoruje wielkości liter we wzorcach i na wejściu
wypisuje jedynie nazwy plików zawierających
dopasowania
poprzedza kaŜdą linię wyjścia jej numerem w pliku
wejściowym
odwraca sens dopasowania (wybór linii niepasujących)
dopasowanie całych linii (opcja tylko dla fgrep)
pobiera wzorzec z pliku filename
65 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Składnia poleceń rodziny grep (cd.)
Regular
Expression Matches
x
xyz
\m
^
$
.
[xy^$x]
[^xy^$z]
[a-z]
[^a-z]
r*
r1r2
grep, fgrep, and egrep
Ordinary characters match themselves (NEWLINES and
metacharacters excluded)
Ordinary strings match themselves
grep and egrep
Matches literal character m
Start of line
End of line
Any single character
Any of x, y, ^, $, or z
Any one character other than x, y, ^, $, or z
Any single character in given range
Any single character not in range
zero or more occurrences of regex r
Matches r1 followed by r2
66 / 81
33
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Składnia poleceń rodziny grep (cd.)
Regular
Expression
\(r\)
\n
\{n,m\}
r+
r?
r1|r2
(r1|r2)r3
(r1|r2)*
{n,m}
Matches
grep only
Tagged regular expression, matches r
Set to what matched the nth tagged
expression (n = 1-9)
Repetition
egrep only
One or more occurrences of r
Zero or one occurrences of r
Either r1 or r2
Either r1r3 or r2r3
Zero or more occurrences of r1|r2,
e.g., r1, r1r1, r2r1, r1r1r2r1,…)
Repetition
67 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
UŜycie poleceń rodziny grep
grep ‘men’ GrepMe
grep ‘fo*’ GrepMe
egrep ‘fo+’ GrepMe
egrep -n ‘[Tt]he’ GrepMe
fgrep ‘The’ GrepMe
egrep ‘NC+[0-9]*A?’ GrepMe
fgrep -f expfile GrepMe
•
Odszukaj w plikach o rozszerzeniu .c linie zawierające liczbę ze
znakiem:
$ egrep ’[-+][0-9]+\.?[0-9]*’ *.c
bsearch. c: return -1;
compile. c: strchr("+1-2*3", t-> op)[1] - ’0’, dst,
convert. c: Print integers in a given base 2-16 (default 10)
convert. c: sscanf( argv[ i+1], "% d", &base);
strcmp. c: return -1;
strcmp. c: return +1;
68 / 81
34
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
UŜycie poleceń rodziny grep (cd.)
•
/usr/dict/words zawiera ok. 25,000 słów w j. angielskim. Jakie słowa zawierają
dwa znaki ‘hh’ obok siebie:
$ egrep hh /usr/dict/words
beachhead
highhanded
withheld
withhold
•
Proste sprawdzenie pisowni (niepewna alternatywa):
$ egrep "n(ie|ei)ther" /usr/dict/words
neither
•
W jakich słowach znajdują się trzy znaki ‘c’ rozdzielone pojedynczymi znakami:
$ egrep u.u.u /usr/dict/words
cumulus
•
W ilu słowach znajdują się trzy znaki ‘a’ rozdzielone pojedynczymi znakami:
$ egrep a.a.a /usr/dict/words | wc –l
50
69 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
grep: inne uwagi
• uŜycie /dev/null jako dodatkowej nazwy pliku powoduje
wyświetlenie nazwy pliku, w którym zostało dokonane
dopasowanie, np.:
$ grep test bigfile
This is a test.
$ grep test /dev/null bigfile
bigfile:This is a test.
• Wykorzystanie kodu powrotu z polecenia grep
$ grep fred filename > /dev/null && rm filename
/dev/null – „czarna dziura” - wirtualne urządzenie usuwające wszystkie dane
przekierowane do niego i nie generujące Ŝadnych danych dla procesów
czytających z niego
70 / 81
35
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Maskowanie i wzorce (ang. wildcards & patterns)
powłoki
• Powłoki operują na pewnych (często modyfikowanych)
podzbiorach wyraŜeń regularnych. Przykładowo powłoka
ksh rozszerza zakres wzorców.
• Zazwyczaj inna składnia niŜ przyjęta w omawianych
wyraŜeniach regularnych, np.:
* w powłoce .* w wyraŜeniach regularnych
? w powłoce . w wyraŜeniach regularnych
[] ma takie samo znaczenie w powłoce i w wyraŜeniach
regularnych, ale juŜ negacja będzie wyraŜona inaczej:
wyraŜenie regularne: [^abc]
powłoka: [!abc]
71 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Przechodzenie drzewa
• jak wybrać zbiór plików, w stosunku do których mają być
zastosowane filtry?
• pierwsza moŜliwość: maski
– grep word *
– grep word * */* */*/*
• ale co np. z plikami:
– we wszystkich podkatalogach danego katalogu?
– utworzonymi po 1 stycznia 2001 roku?
– plikami większymi niŜ 10K?
72 / 81
36
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenie find
• find [path...] [expression]
• polecenie szuka plików w hierarchii katalogowej katalogu
(lub wielu katalogów) path
• w skład expression wchodzą:
–
–
–
–
opcje
testy
akcje
operatory
73 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenie find - opcje
-depth - przetwarza zawartość kaŜdego katalogu przed
samym katalogiem jako takim
-maxdepth głębokość - schodzi maksymalnie
głębokość (nieujemna liczba całkowita) poziomów
katalogów od argumentów wiersza poleceń. `-maxdepth
0' oznacza, by testy i akcje stosować tylko do argumentów
wiersza poleceń
-follow - rozwikłuje dowiązania symboliczne
-xdev - nie zagłębia się w katalogi na innych systemach
plików
...
74 / 81
37
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenie find - testy
Wartości numeryczne mogą ybć podawane jako +n (większy od n), -n (mniejszy od n) lub n
(równy n).
-amin n - dostęp do pliku nastąpił ostatnio n minut temu
-cmin n - status pliku został zmieniony n minut temu
-mmin n - dane pliku były ostatnio modyfikowane n minut temu
-size n - plik zajmuje n jednostek miejsca (jednostki to domyślnie 512-bajtowe bloki)
-inum n - plik ma numer iwęzła n
-name wzorzec - podstawa nazwy pliku (z usuniętą ścieŜką i poprzedzającymi katalogami)
odpowiada wzorcowi powłoki wzorzec
-perm prawa - bity praw pliku są dokładnie równe prawom
-perm -prawa - wszystkie bity prawa są ustawione dla pliku
-perm +prawa - któryś z bitów praw jest ustawiony dla pliku
-type x - plik jest typu x (x=‘f’ zwykły plik, x=‘d’ katalog, x=‘l’ dowiązanie, itd.)
-user userid | username - właścicielem pliku jest username (lub numerycznie userid)
-group groupid | groupname - plik naleŜy do grupy groupname (lub numerycznie
groupid)
75 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenie find - akcje
• -print - prawdziwe; wypisuje pełną nazwę pliku na standardowe
wyjście, za nazwą daje nową linię (akcja domyślna)
• -exec polecenie ; - wykonuje polecenie; prawdziwe jeśli
zwrócony został status 0; wszelkie następne argumenty find są brane
za argumenty polecenia, aŜ nie zostanie napotkany argument,
składający się z ‘;’
• -ok polecenie ; - podobne do -exec, lecz pyta wpierw uŜytkownika
(na standardowym wejściu); jeśli odpowiedź nie rozpoczyna się od `y' lub
`Y', nie uruchamia polecenia i zwraca fałsz
...
76 / 81
38
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Polecenie find - operatory
Wymienione w malejącym priorytecie:
( wyraŜ ) - wymusza pierwszeństwo.
! wyraŜ - prawdziwe jeśli wyraŜ jest fałszywe
wyraŜ1 wyraŜ2 - and (jawny); wyraŜ2 nie jest analizowany jeśli wyraŜ1 jest
fałszywe
wyraŜ1 -and wyraŜ2 - to samo, co wyraŜ1 wyraŜ2
wyraŜ1 -or wyraŜ2 - or; wyraŜ2 nie jest analizowane jeśli wyraŜ1 jest
prawdziwe
wyraŜ1 , wyraŜ2 - lista; zarówno wyraŜ1 jak i wyraŜ2 zawsze są
analizowane. Wartość wyraŜ1 jest niszczona; wartość listy jest
wartością wyraŜ2
77 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
UŜycie find
•
Znajdź w katalogu domowym wszystkie pliki na f
– find ~ -name ‘f*’ -print
•
Znajdź w katalogu domowym wszystkie pliki o wilekści 10K
– find ~ -size 10k -print
•
Usuń pliki o nazwie core
– find / -name core –exec rm {} \;
78 / 81
39
2011-11-28
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Porównanie dwóch plików: diff
polecenie diff porównuje dwa pliki i wyświetla opis róŜnic, uŜycie:
diff [options] file1 file2
-q - poinformowanie jedynie o tym, czy pliki się róŜnią
-i - ignorowanie zmian w wielkości liter
-w - ignorowanie wszystkich odstępów przy porównywaniu plików
--binary - wymuszenie odczytu i zapisu danych w trybie binarnym
-e - generowanie skryptu ed transformacji file1 do file2
apples
oranges
walnuts
apples
oranges
grapes
$ diff test1 test2
3c3
< walnuts
--> grapes
79 / 81
SYSTEMY OPERACYJNE KOMPUTERÓW
UNIX – PODSTAWOWE POLECENIA POWŁOKI
Porównanie dwóch plików: cmp i comm
• cmp - porównuje dwa pliki lub zakresy bajtów
– narzędzie cmp porównuje dwa dowolnego typu pliki i wypisuje
wynik na standardowym wyjściu. Domyślnie, cmp milczy gdy
pliki są takie same. Jeśli się róŜnią, zgłaszany jest numer bajtu
i linii, gdzie wystąpiła pierwsza róŜnica.
• comm - porównaj dwa posortowane pliki linia po linii
– bez opcji comm wypisuje wynik w trzech kolumnach. Kolumna
pierwsza zawiera linie unikatowe dla plik1, kolumna druga
zawiera linie unikatowe dla plik2, a kolumna trzecia zawiera
linie wspólne obu plikom;
– oba pliki muszą być posortowane zanim będzie moŜna uŜyć
comm, przy czym kończące znaki nowej linii są znaczące.
80 / 81
40

Podobne dokumenty