Przeglądając zawartość plików, chciałbym automatycznie cat
skracać pliki, ale less
te, które przekraczają rozmiar ekranu. Mógłbym czegoś użyć wc -l
, ale czy istnieje lepszy sposób, który może uwzględniać również rozmiar okna / bieżącą liczbę dostępnych linii?
12
git log
którym robi to dokładnie. Nigdy nie wiesz z góry, co dostaniesz (czy musisz trafićq
?).cat
do przeglądania plików. Zazwyczaj powinieneś używać tylkocat
do wysyłania zawartości pliku na standardowe wyjście, aby można go było przesłać do innego procesu. Powodem, dla którego należy unikać używaniacat
do przeglądania, jest wysyłanie nieprzetworzonych bajtów do terminala, co może powodować wykonywanie nieoczekiwanych poleceń terminala (np. Niektórzy użytkownicy utknęli, gdy plik zawierał odpowiednie bajty do wyłączenia klawiatury terminala) . Zwykle powinieneś używać pageraless
lub edytora, który formatuje znaki specjalne do wyświetlania, aby nie były interpretowane przez terminal.cat -v
aby unikał znaków specjalnych.cat
możliwe jest dzielenie ekranu ? co może być lepszym rozwiązaniemcat -v
sięOdpowiedzi:
Aby podać formułę, która obejmuje
wc
sprawdzenie na podstawie:Istnieje
$LINES
zmienna powłoki, której można również użyć:Ale
$LINES
jest aktualizowany tylko wtedy, gdy w wierszu polecenia. Aby zrozumieć, co mam na myśli, uruchom to i zmień rozmiar okna terminala podczassleep
:źródło
less
jeśli np. 2/3 ekranu zostało wykorzystanecat
.Może „mniej -F plik_do_przeczytania” jest opcją: wychodzi mniej, jeśli okno jest wystarczające do wyświetlenia całego pliku, i poczekaj na pager, jeśli tak nie jest
źródło
-X
opcji zatrzyma czyszczenie, więc krótkie pliki będą wyświetlane tak jakcat
robi. Niestety-X
ekran nie zostanie wyczyszczony po wyświetleniu długich przewijanych plików.cat
został również wezwany