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: ”
< filenameto 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ę, żecatjest prostsza. - Nagie
< filenamenie wyświetlić zawartość pliku, alecat filenametak. - 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
-
lessto przesadna wersjamore(porównajman lesszman 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/morew moim profilu i używaniemoreprzez cały czas. - @ ott–: 1) Wypróbuj flagę
-X. 2) Wypróbuj flagę-E.lessma tryb emulacjimore. Możesz ją włączyć, ustawiając zmienną środowiskowąLESS_IS_MORE. Wmoretrybie emulacji można przewijać w górę. - Zobacz też: unix.stackexchange.com/questions / 81129 / …
- Chociaż ogólnie zgadzam się, że
lessjest 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
morei ' 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 -Rtoview. 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 filemoże być przydatne.lessma 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?lessma 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/… .lessto prawdopodobnie najczęściej używany pager, ale którego używasz, sprowadza się do osobistych preferencji.moreimost!