Příklad 1: Výpis určitých řádků podle jejich čísel pomocí příkazu sed
Příkaz umožňuje zobrazit pouze požadované řádky s určitými čísly, která jsou explicitně zadána.
Syntaxe:
- $ sed -n -e Xp -e Yp FILENAME
V níže uvedeném příkladu jsou vypisovány řádky 120, 145 a 1050 souboru syslog.
- $ sed -n -e 120p -e 145p -e 1050p /var/log/syslog
V dalším příkladu můžete zobrazit obsah souboru /var/log/cron od řádku číslo 101 do řádku číslo 110.
Syntaxe:
- sed -n M,Np FILENAME
- $ sed -n 101,110p /var/log/cron
Příklad 2: Výpis prvních N řádků souboru pomocí příkazu head
V tomto příkladu jsou vypisovány prvních 15 řádků souboru /var/log/maillog.
Syntaxe:
- head -n N FILENAME
- $ head -n 15 /var/log/maillog
Chcete-li vypsat prvních 10 řádků protokolu, změňte v příkladu číslo 15 na 10.
Příklad 3: Nevypisování posledních N řádků souboru pomocí příkazu head
Tento příklad ukazuje, jak ignorovat posledních N řádků a zobrazit pouze zbývající řádky od začátku souboru.
Syntaxe:
- head -n -N FILENAME
Příklad ukazuje, jak lze vypsat všechny řádky souboru /var/log/secure kromě posledních 250.
- $ head -n -250 /var/log/secure
Příklad 4: Výpis posledních N řádků souboru pomocí příkazu tail
Syntaxe: tail -n N FILENAME
V tomto příkladu se vypíšou pouze posledních 50 řádků souboru /var/log/messages. Chcete-li na obrazovku vypsat posledních 100 řádků protokolu, změňte 50 na 100.
- $ tail -n 50 /var/log/messages
Příklad 5: Nepřepisování prvních N-1 řádků souboru pomocí příkazu tail
Tímto příkazem lze ignorovat prvních N-1 řádků a zobrazit pouze zbývající řádky.
Syntaxe:
- tail -n +N FILENAME
Tento příklad ukazuje, jak ignorovat prvních 4 řádky souboru /etc/xinetd.conf, který obsahuje pouze komentáře.
- $ tail -n +5 /etc/xinetd.conf
- defaults
- {
- instances = 60
- log_type = SYSLOG authpriv
- log_on_success = HOST PID
- log_on_failure = HOST
- cps = 25 30
- }
- includedir /etc/xinetd.d
Příklad 6: Sledování rostoucího protokolu v reálném čase pomocí příkazu tail
Pravděpodobně jde o jednu z nejčastěji používaných příkazů správci systémů. Pro zobrazení rostoucího souboru a výstup pouze aktualizovaného obsahu protokolu použijte příkaz tail -f, jak je ukázáno níže.
V následujícím příkladu se v reálném čase zobrazuje obsah souboru /var/log/syslog.
Syntaxe:
- tail -f FILENAME
- $ tail -f /var/log/syslog
Příklad 7: Výstup určitých řádků (podle čísla řádku) pomocí příkazů head a tail
Syntaxe:
- cat file | tail -n +N | head -n (M-N+1)
V níže uvedeném příkladu se zobrazují řádky 101 – 110 souboru /var/log/anaconda.log
- $ cat /var/log/anaconda.log | tail -n +101 | head -n 10
Příklad 8: Výstup řádků odpovídajících vzoru a několika následujících řádků.
Následující příklad ukazuje, jak vypsat řádky odpovídající vzoru „Initializing CPU“ ze souboru /var/log/dmesg, a také 5 řádků, které bezprostředně následují.
- # grep "Initializing CPU#1" /var/log/dmesg
- Initializing CPU#1
[Poznámka: tento příkaz vypíše pouze řádky odpovídající vzoru]
- # grep -A 5 "Initializing CPU#1" dmesg
- Initializing CPU#1
- Calibrating delay using timer specific routine.. 3989.96 BogoMIPS (lpj=1994982)
- CPU: After generic identify, caps: bfebfbff 20100000 00000000 00000000
- CPU: After vendor identify, caps: bfebfbff 20100000 00000000 00000000
- monitor/mwait feature present.
- CPU: L1 I cache: 32K, L1 D cache: 32K
[Pozor: tento příkaz vypíše řádek, který odpovídá, a 5 řádků za ním]
Pro příkaz grep jsou k dispozici následující operace:
Příklad 9: Výstup určitých bajtů ze souboru.
Následující příklad ukazuje, jak vypsat buď prvních 40, nebo posledních 30 bajtů souboru.
Výstup prvních 40 bajtů souboru syslog.
- $ head -c40 /var/log/syslog
Výstup posledních 30 bajtů souboru syslog.
- $ tail -c30 /var/log/syslog
Příklad 10: Zobrazení komprimovaných logů.
Pravidelně jsou všechny systémové logy komprimovány. Můžete je „za chodu“ rozbalit a zpracovat výsledek pomocí jiného příkazu. Jak na to, je ukázáno níže.
Výstup prvních N řádků komprimovaného souboru.
- $ zcat file.gz | head -250
Zobrazení posledních N řádků ze komprimovaného souboru.
- $ zcat file.gz | tail -250
Ignorování posledních N řádků ze komprimovaného souboru.
- $ zcat file.gz | head -n -250
Ignorování prvních N řádků ze komprimovaného souboru.
- $ zcat file.gz | tail -n +250
Zobrazení řádků odpovídajících vzoru
- $ zcat file.gz | grep -A2 'error'
Zobrazení sady řádků podle zadaného rozsahu jejich čísel.
- $ zcat file.gz | sed -n -e 45p -e 52p
