[Linux] W jaki sposób wyświetlić określoną ilość wierszy z pliku?

0
746
Rate this post

Linux to system operacyjny, który oferuje szeroki wachlarz narzędzi i funkcji dostępnych w wierszu poleceń. Jednym z często wykonywanych zadań jest wyświetlanie określonej ilości wierszy z pliku tekstowego. Na Linuxie można to zrobić na kilka sposobów, wykorzystując różne polecenia i opcje. Poniżej przedstawiam kilka metod, które pomogą Ci w tym zadaniu.

Polecenie head

Pierwszą i jedną z najbardziej podstawowych metod jest użycie polecenia head. Pozwala ono wyświetlić pierwsze n wierszy z pliku.

bash
head -n 10 plik.txt

W tym przypadku wyświetlone zostaną pierwsze 10 wierszy z pliku o nazwie plik.txt. Możesz oczywiście zmienić liczbę 10 na dowolną inną, aby wyświetlić więcej lub mniej wierszy.

Polecenie tail

Kolejnym polecanym narzędziem jest tail, które w odróżnieniu od head wyświetla ostatnie n wierszy pliku.

bash
tail -n 10 plik.txt

W powyższym przypadku zostanie wyświetlonych ostatnich 10 wierszy z pliku plik.txt. Podobnie jak w przypadku head, liczba wierszy jest konfigurowalna.

Polecenie sed

sed, czyli stream editor, to potężne narzędzie do przetwarzania tekstów, które również można wykorzystać do wyświetlania określonej ilości wierszy.

bash
sed -n '1,10p' plik.txt

Tutaj 1,10p oznacza, że wyświetlone zostaną wiersze od pierwszego do dziesiątego. Możesz zastąpić te liczby dowolnymi innymi, aby wybrać inny zakres wierszy.

Polecenie awk

awk to kolejne mocne narzędzie do przetwarzania tekstów. Możesz je użyć do wyświetlenia określonej ilości wierszy w następujący sposób:

bash
awk 'NR >= 1 && NR <= 10' plik.txt

W tym przypadku NR oznacza „Number of Records”, co w kontekście pliku tekstowego oznacza numer wiersza. Polecenie to wyświetli wiersze od 1 do 10.

Polecenie cat z kombinacją z head i tail

Jeżeli potrzebujesz bardziej złożonego sposobu wyświetlenia wierszy, możesz użyć kombinacji poleceń cat, head i tail.

bash
cat plik.txt | head -n 20 | tail -n 10

Powyższe polecenie najpierw wykorzystuje cat do wyświetlenia zawartości pliku, następnie head wybiera z tego pierwsze 20 wierszy, a tail redukuje to do ostatnich 10 wierszy z wcześniejszego wyboru. Ostatecznie otrzymamy wiersze od 11 do 20.

Każda z tych metod ma swoje plusy i minusy, oraz różnią się pod względem możliwości konfiguracji i wydajności. Wybór metody zależy od konkretnego przypadku i potrzeb. Oczywiście, to tylko kilka podstawowych sposobów, a świat Linuxa oferuje znacznie więcej możliwości, kiedy chodzi o manipulację i przetwarzanie tekstów.

Polecenie grep z Opcją -A i -B

Jeżeli interesuje Cię wyświetlenie określonej ilości wierszy przed i/lub po danym wzorze, polecenie grep może być bardzo przydatne. Opcje -A (after) i -B (before) pozwalają wyświetlić określoną ilość wierszy po i przed pasującym wierszem.

bash
grep -A 3 -B 2 'wzor' plik.txt

W tym przypadku, polecenie znajdzie wiersz zawierający 'wzor’ oraz wyświetli 2 wiersze przed i 3 wiersze po znalezionym wierszu.

Polecenie split

Jeśli plik jest bardzo duży i chcemy go podzielić na mniejsze fragmenty, polecenie split może być bardzo użyteczne. Na przykład, jeśli chcemy podzielić plik na fragmenty po 100 wierszy każdy, możemy użyć polecenia:

bash
split -l 100 plik.txt

Polecenie to podzieli plik.txt na mniejsze pliki, z których każdy będzie zawierać 100 wierszy. Następnie możemy użyć poleceń takich jak head lub tail, aby wyświetlić interesujące nas wiersze z odpowiedniego fragmentu.

Użycie skryptów

Jeżeli żadne z powyższych poleceń nie spełnia Twoich wymagań, zawsze można napisać własny skrypt, który dokładnie zrobi to, co chcesz. Na przykład, skrypt w języku Bash do wyświetlania wierszy od 10 do 20 może wyglądać tak:

bash
#!/bin/bash

linia_start=10
linia_koniec=20
licznik=0

while read -r linia; do
licznik=$((licznik + 1))
if [ $licznik -ge $linia_start ] && [ $licznik -le $linia_koniec ]; then
echo "$linia"
fi
done < plik.txt

Ten skrypt czyta plik linia po linii i wyświetla te, które pasują do określonych kryteriów.

W przypadku skryptów można również używać języków programowania takich jak Python, Perl czy Ruby, które oferują jeszcze więcej funkcji i możliwości.

Wykorzystanie narzędzi do analizy tekstu

W bardziej zaawansowanych przypadkach, można również wykorzystać dedykowane narzędzia do analizy tekstu, które pozwalają na bardzo skomplikowane zapytania i manipulacje. Przykłady to narzędzia jak awk z bardziej złożonymi skryptami, perl z modułami do analizy tekstu czy Python z bibliotekami takimi jak pandas dla analizy danych.

Każde z tych podejść ma swoje zastosowania i najlepsze praktyki, więc warto eksperymentować i wybierać te, które najlepiej pasują do Twojego konkretnego przypadku. Ostatecznie, Linux oferuje szeroki wybór narzędzi i podejść, które pozwalają na efektywne i elastyczne przetwarzanie plików tekstowych w różnych kontekstach.

Narzędzia Wbudowane w Edytory Tekstu

Jeśli jesteś zalogowany na systemie Linux przez interfejs graficzny, możesz również wykorzystać wbudowane narzędzia w zaawansowanych edytorach tekstu takich jak Vim, Emacs, czy nawet IDEs jak Visual Studio Code.

Vim

W Vimie, możesz użyć komendy :1,10 w trybie komendowym (uruchomionym przez naciśnięcie :), aby zaznaczyć i wyświetlić wiersze od 1 do 10. Możesz również użyć różnych innych poleceń i skryptów dostępnych w tym edytorze.

Emacs

W Emacsie, można skorzystać z funkcji narrow-to-region do ograniczenia widoku do określonych linii. Następnie można użyć różnych funkcji do manipulacji tekstem w obrębie tego widoku.

Visual Studio Code

W Visual Studio Code, można użyć rozszerzeń, które ułatwiają filtrowanie i wyświetlanie określonych linii kodu. Dostępne są również narzędzia do wyszukiwania i zastępowania tekstu, które mogą być używane do manipulacji wierszami.

Przetwarzanie Strumieniowe

Oprócz poleceń, które działają na plikach, wiele poleceń w Linuxie umożliwia przetwarzanie strumieniowe. To oznacza, że możesz przekierować wyjście jednego polecenia jako wejście do drugiego, tworząc w ten sposób bardziej złożone operacje. Na przykład:

bash
head -n 30 plik.txt | grep "wzor" | tail -n 5

W tym przypadku, polecenie head wybiera pierwsze 30 linii z plik.txt, które są przekazywane do grep, filtrującego tylko linie zawierające „wzor”. Wynik jest następnie ograniczony do ostatnich 5 linii przez tail.

Podsumowując

Opcji jest wiele i wszystko zależy od konkretnej sytuacji oraz potrzeb. Dostępne są różne metody, zarówno dla użytkowników początkujących, jak i zaawansowanych. Możesz korzystać z prostych poleceń, skomplikowanych skryptów, a nawet zintegrować różne narzędzia w celu utworzenia bardziej zaawansowanego procesu przetwarzania tekstu. Warto również pamiętać, że wiele z tych poleceń i narzędzi jest bardzo dobrze udokumentowanych, więc zawsze można szukać dodatkowych informacji i przykładów, które pomogą Ci osiągnąć dokładnie to, co potrzebujesz.