Terminal i numerowanie wyświetlanych linii

27/01/2016, 23:45 · · · 1

Nie wiem jak Wy, ale ja mam czasem tak, że przeglądając różne triki myślę, że nie będą mi potrzebne. Za jakiś czas okazuje się jednak, że jakieś rozwiązanie mogłoby się przydać. Dlatego zawsze staram się je zachowywać.

Najczęściej powyższa sytuacja powtarza się, gdy tworzę jakieś skrypty współpracujące z Alfredem lub Keyboard Maestro. Zazwyczaj składam je właśnie z podpatrzonych gdzieś lub znalezionych kawałków. Dziś chciałbym Wam pokazać również taki „kawałek”, który może na pierwszy rzut oka wydaje się mało przydatny, ale kto wie, może w przyszłości właśnie się przyda.

Czasami potrzebujemy podejrzeć jakiś plik tekstowy z poziomu Terminala. Jest na to wiele metod. Jeśli plik ten zawiera na przykład jakieś polecenia, być może chcielibyśmy wiedzieć, w której linijce się znajdują. Oczywiście można w tym celu wykorzystać zbiór komend. Zamiast jednak wpisywać je za każdym razem, skorzystamy z właściwości tworzenia własnych komend konfigurowanych w pliku .bash_profile, który znajduje się (lub nie, jeśli wcześniej nic z nim nie tworzyliśmy) w katalogu domowym.

Przystępujemy więc do pracy. Po pierwsze, musimy otworzyć/utworzyć wspomniany plik. W tym celu w Terminalu wpisujemy polecenie:

nano ~/.bash_profile

Uruchomi się edytor tekstowy w Terminalu. Klawiszami strzałek przechodzimy do ostatniej linijki (lub nie, jeśli plik jest pusty) i wklejamy tam następujący skrypt:

lno() {
    if [ $# == 0 ]; then
        echo "No filename provided."
    else
        sed = "$1" | paste -s -d '\t\n' - -
    fi
}

Teraz zapisujemy plik skrótem Ctrl+o i wychodzimy z edytora – Ctrl+x. Aby wszystko działało musimy jeszcze przeładować plik poleceniem:

source ~/.bash_profile

Od tego momentu możemy użyć nowego polecenia – lno według następującego schematu:

lno /ścieżka/do_jakiegoś/pliku

W rezultacie wyświetlona zostanie zawartość pliku wraz z numeracją linijek.

Komendę tę możemy stosować również w połączeniu z innymi. Na przykład z poleceniem grep:

lno /ścieżka/do_jakiegoś/pliku | grep "jakiś wyszukiwany tekst"

Rezultatem będzie wyświetlony numer linijki zawierającej ten tekst (oczywiście, jeśli takowy zostanie znaleziony).

Możemy również utworzyć plik z numerowanymi linijkami komendą:

lno /ścieżka/do_jakiegoś/pliku > /ścieżka/do_nowego/pliku

Źródło brettterpstra.com



1

Maciej Skrzypczak

Użytkownik sprzętu z nadgryzionym jabłkiem, grafik komputerowy, nałogowy gracz ARK: Survival Evolved. Redaktor iMagazine.pl.