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:
cat
Ponieważ twój plik jest krótki, możesz użyć
cat
.
cat filename
less
Jeśli chcesz wyświetlić zawartość dłuższego pliku, możesz użyć pagera, takiego jak
less
.
less filename
Możesz sprawić, by less
zachowywał się jak cat
podczas wywoływania na małych plikach i zachowywać się normalnie inaczej, przekazując mu flagi -F
i -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.
od
Jeśli plik zawiera dziwne lub niedrukowalne znaki, możesz użyć ich
od
do 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
less
ma jakieś wyraźne zalety w porównaniu z innymi programami pagera pg
, czy może sprowadzają się do osobistych preferencji?
less
ma 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/… . less
jest prawdopodobnie najczęściej używanym pageriem, ale ten, którego używasz, sprowadza się do osobistych preferencji.
more
i most
!
Nawet jeśli wszyscy używają cat filename
do 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 echo
lub 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
< filename
jest 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 cat
jest prostsza.
< filename
nie 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 grep
polecenie 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)
less
jest wersją przesadną more
(porównaj man less
z 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/more
w moim profilu i używanie przez more
cały czas.
-X
flagę. 2) Wypróbuj -E
flagę. less
ma more
tryb emulacji. Możesz go włączyć, ustawiając LESS_IS_MORE
zmienną środowiskową. Możesz przewijać w górę w more
trybie emulacji.
less
jest to zbyt skomplikowane. Jego zdolność do uruchamiania zewnętrznych poleceń jest doskonałym przykładem jego złożoności.
more
i 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 -R
jest 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 file
może się przydać.