Chciałbym wyświetlić zawartość pliku tekstowego w linii poleceń. Plik zawiera tylko 5-6 znaków. Czy istnieje łatwy sposób na zrobienie tego?
Odpowiedz
Używając cat
Ponieważ twój plik jest krótki, możesz użyć cat
.
cat filename
Używanie less
Jeśli musisz przeglądać zawartość dłuższego pliku, możesz użyć pagera takie jak less
.
less filename
Możesz sprawić, aby less
zachowywał się jak cat
po wywołaniu dla małych plików i zachowywał się normalnie, przekazując mu -F
i -X
flagi.
less -FX filename
Mam alias dla less -FX
. Możesz zrobić taki sam:
alias aliasname="less -FX"
Jeśli dodasz alias do swojej konfiguracji powłoki , możesz go używać wiecznie.
Używając od
Jeśli twój plik zawiera dziwne lub niedrukowalne znaki, możesz użyć od
, aby sprawdzić znaki. 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
Komentarze
Odpowiedz
Mimo że wszyscy używają cat filename
do wydrukowania tekstu pliku na standardowe wyjście, pierwszym celem jest con kot enating. Ze strony podręcznika cat:
cat – łączy pliki i drukuje na standardowym wyjściu
Teraz cat jest odpowiedni do drukowania plików, ale są alternatywy:
echo "$(<filename)" or printf "%s" "$(<filename)"
( )
return wartość wyrażenia, w tym przypadku zawartość nazwa_pliku , która jest następnie rozwijana przez $
dla echo
lub printf
.
Aktualizacja:
< filename
Robi dokładnie to, co chcesz i jest łatwe 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
Więcej czytanie:
BashPitfalls – plik cat | sed s / foo / bar /> plik
Bash Reference – Przekierowanie
Komentarze
- Twoja aktualizacja: ”
< filename
to dokładnie wh jeśli chcesz, … ” wprowadza w błąd. Ogólnie rzecz biorąc, chociaż jest to interesująca dyskusja na temat alternatyw, myślę, żecat
jest prostsza. - Nagie
< filename
nie wyświetlić zawartość pliku, alecat filename
tak. - Możesz też użyć
tee < filename
. - +1 za bashizm
echo "$(<filename)"
. Nie dość tego tutaj. - To ' świetny pomysł na użycie wewnętrznego polecenia Linuksa z echo
"$(<filename)"
. Dzięki …
Odpowiedź
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
Kilka ostatnich wierszy
tail filename.txt
Dla kilka pierwszych wierszy
head filename.txt
Odpowiedź
Do wyświetlenia treści możesz użyć następującego polecenia pliku tekstowego.
cat filename
Komentarze
- Więcej informacji na temat
cat
, uruchomman cat
.
Odpowiedz
Jedną z opcji jest użycie more
np.more file.txt
Jednak nie ma wszystkich funkcji dodanych przez less
.
Prostym przykładem jest to, że nie można przewijać danych wyjściowych w górę. Generalnie zostało zastąpione przez mniej – które zostało nazwane żartobliwie, ponieważ
mniej znaczy więcej
Komentarze
- Ładne wyjaśnienie, dlaczego nazwa była mniejsza
Odpowiedź
Zawsze używam $ less "your file here"
, ponieważ jest to bardzo proste, zapewnia wbudowaną interaktywną grep
i zapewnia łatwy w użyciu interfejs, który można przewijać za pomocą klawiszy strzałek.
(Jest również dostępny w prawie każdym systemie * nix)
Komentarze
-
less
to przesadna wersjamore
(porównajman less
zman more
) i dla mnie ma dwie irytujące funkcje: 1) przełącza się na alternatywny bufor ekranu, gdy less się kończy, plik który właśnie przeglądałeś znika 2) w EOF musisz jawnie wpisaćq
(wiem, że ' jest odpowiednią opcją). Dlatego jedną z moich pierwszych czynności w nowym środowisku jest ustawienieexport PAGER=/bin/more
w moim profilu i używaniemore
przez cały czas. - @ ott–: 1) Wypróbuj flagę
-X
. 2) Wypróbuj flagę-E
.less
ma tryb emulacjimore
. Możesz ją włączyć, ustawiając zmienną środowiskowąLESS_IS_MORE
. Wmore
trybie emulacji można przewijać w górę. - Zobacz też: unix.stackexchange.com/questions / 81129 / …
- Chociaż ogólnie zgadzam się, że
less
jest przesadnie skomplikowane. Jego zdolność do uruchamiania poleceń zewnętrznych jest doskonałym przykładem jego nadmiernej złożoności. - @EvanTeitelman I ' Zawsze uważałem, że funkcja grep jest niezwykle użyteczna, @ott – Uważam, że z tego powodu ' emulacja
more
i ' ma wiele dodatkowych funkcji, bardzo dobrze spełnia swoje zadanie.
Odpowiedź
Jeśli jest to duży plik i chcesz przeszukać jakąś 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 używając opcji -R, ma wiele funkcji, które pomoże ci w przeglądaniu pliku.
Komentarze
- Krótsze dla
vim -R
toview
. Pamiętaj jednak, że nie lubi przekierowań, o czym mowa w xargs i vi – „Dane wejściowe nie pochodzą z terminala” . - dzięki @manatwork for the heads up! Niedawno zacząłem używać Vima i podoba mi się ze względu na kilka jego funkcji. Jeśli chodzi o przekierowania, zapomniałem o tym, dzięki za przypomnienie. W tej chwili pracuję na zdalnej maszynie wirtualnej, gdzie używam ssh bez interfejsu GUI, dlatego Vim jest bardzo przydatny, gdy żaden inny edytor GUI nie może działać, ' s dlaczego podkreśliłem tutaj Vima.
Odpowiedź
Użyj polecenia cat, aby wyświetlić zawartość nazwy pliku. cat nazwa_pliku
Użyj polecenia vim do edycji pliku. nazwa pliku vim
sed -n l file
może być przydatne.less
ma jakieś wyraźne zalety w porównaniu z innymi programami do obsługi stronicowania, takimi jakpg
, czy sprowadza się to po prostu do osobistych preferencji?less
ma więcej funkcje niżpg
. Przyjrzyj sięless(1)
ipg(1)
podręczników. Istnieją również inne pagery. Spójrz na unix.stackexchange.com/questions/81129/… .less
to prawdopodobnie najczęściej używany pager, ale którego używasz, sprowadza się do osobistych preferencji.more
imost
!