Chciałbym wyświetlić zawartość pliku tekstowego w wierszu poleceń. Plik zawiera tylko 5-6 znaków. Czy jest na to łatwy sposób?
Chciałbym wyświetlić zawartość pliku tekstowego w wierszu poleceń. Plik zawiera tylko 5-6 znaków. Czy jest na to łatwy sposób?
Odpowiedzi:
catPonieważ twój plik jest krótki, możesz użyć
cat.
cat filename
lessJeśli chcesz wyświetlić zawartość dłuższego pliku, możesz użyć pagera, takiego jak
less.
less filename
Możesz sprawić, by lesszachowywał się jak catpodczas wywoływania na małych plikach i zachowywać się normalnie inaczej, przekazując mu flagi -Fi -X.
less -FX filename
Mam pseudonim dla less -FX. Możesz zrobić taki sam:
alias aliasname='less -FX'
Jeśli dodasz alias do konfiguracji powłoki , możesz go używać na zawsze.
odJeśli plik zawiera dziwne lub niedrukowalne znaki, możesz użyć ich
oddo sprawdzenia. Na przykład,
$ cat file
(ÐZ4 ?o=÷jï
$ od -c test
0000000 202 233 ( 320 K j 357 024 J 017 h Z 4 240 ? o
0000020 = 367 \n
0000023
lessma jakieś wyraźne zalety w porównaniu z innymi programami pagera pg, czy może sprowadzają się do osobistych preferencji?
lessma więcej funkcji niż pg. Spójrz na strony less(1)i pg(1)strony podręcznika. Są też inne pagery. Spójrz na unix.stackexchange.com/questions/81129/… . lessjest prawdopodobnie najczęściej używanym pageriem, ale ten, którego używasz, sprowadza się do osobistych preferencji.
morei most!
Nawet jeśli wszyscy używają cat filenamedo drukowania plików tekstowych na standardowe wyjście pierwszego celu jest con cat enating. Ze strony kota kota:
cat - konkatenuje pliki i drukuje na standardowym wyjściu
Teraz cat nadaje się do drukowania plików, ale istnieją alternatywy:
echo "$(<filename)"
or
printf "%s" "$(<filename)"
( )Zwraca wartość wyrażenia w tym przypadku zawartość pliku , który następnie jest rozszerzany przez $na echolub printf.
Aktualizacja:
< filename
Robi dokładnie to, co chcesz i jest łatwy do zapamiętania.
Oto przykład, który pozwala wybrać plik z menu, a następnie go wydrukować.
#!/bin/bash
select fname in *;
do
# Don't forget the "" around the second part, else newlines won't be printed
printf "%s" "$(<$fname)"
break
done
Do dalszego czytania:
BashPitfalls - plik cat | sed s / foo / bar /> plik
Bash Reference - Przekierowanie
< filenamejest dokładnie tym, czego chcesz ...” wprowadza w błąd. Ogólnie rzecz biorąc, chociaż jest to interesująca dyskusja na temat alternatyw, myślę, że catjest prostsza.
< filenamenie wyświetla zawartości pliku, ale wyświetla cat filename.
tee < filename.
echo "$(<filename)"bashism. Nie wystarczy tego tutaj.
"$(<filename)". Dzięki ...
Narzędzia do obsługi plików tekstowych w systemie Unix to podstawowe, codzienne polecenia:
W systemach Unix i Linux, aby wydrukować całą zawartość w pliku
cat filename.txt
lub
more filename.txt
lub
less filename.txt
Przez ostatnie kilka linii
tail filename.txt
Przez kilka pierwszych linii
head filename.txt
Jedną z opcji jest użycie more
na przykład more file.txt
Jednak nie ma całej funkcji dodanej przez less.
Jednym prostym przykładem jest to, że nie można przewijać wyników w górę. Ogólnie rzecz biorąc, zostało ono zastąpione przez mniej - co nazwano żartem, ponieważ
mniej znaczy więcej
Zawsze używam $ less "your file here", ponieważ jest to bardzo proste, zapewnia wbudowane interaktywne greppolecenie i daje łatwy w użyciu interfejs, który można przewijać za pomocą klawiszy strzałek.
(Jest również zawarty w prawie każdym * systemie nix)
lessjest wersją przesadną more(porównaj man lessz man more), a dla mnie ma dwie irytujące funkcje: 1) przełącza się na alternatywny bufor ekranu, gdy mniej kończy, plik, który właśnie oglądałeś, znika 2) w EOF musisz jawnie wpisać q(Wiem, istnieje na to opcja). Tak więc jedną z moich pierwszych akcji w nowym środowisku jest ustawienie export PAGER=/bin/morew moim profilu i używanie przez morecały czas.
-Xflagę. 2) Wypróbuj -Eflagę. lessma moretryb emulacji. Możesz go włączyć, ustawiając LESS_IS_MOREzmienną środowiskową. Możesz przewijać w górę w moretrybie emulacji.
lessjest to zbyt skomplikowane. Jego zdolność do uruchamiania zewnętrznych poleceń jest doskonałym przykładem jego złożoności.
morei wiele dodatkowych funkcji, robi to bardzo dobrze.
Jeśli jest to duży plik i chcesz przeszukać konkretną część, możesz użyć
cat filename | grep text_to_search -ni
Możesz także użyć bardziej interaktywnego edytora Vima (lub edytora vi, jeśli nie masz Vima):
vim filename
Or
vi filename
Vim / vi to świetny edytor, może być również używany jako czytnik w „trybie normalnym” lub przy użyciu opcji -R, ma wiele funkcji, które pomogą ci w przeglądaniu pliku.
vim -Rjest view. Pamiętaj jednak, że nie lubi przekierowań, jak omówiono w xargs i vi - „Dane wejściowe nie pochodzą z terminala” .
Użyj polecenia cat, aby wyświetlić zawartość nazwy pliku. nazwa pliku kota
Użyj polecenia vim do edycji pliku. nazwa pliku vim
sed -n l filemoże się przydać.