Jak otworzyć plik tekstowy w moim terminalu?


152

Jest plik o nazwie RESULTS.txti chcę go otworzyć w moim terminalu. (Mam na myśli, że chcę, aby zawartość pliku była wyświetlana w terminalu, a nie w edytorze tekstów)

W jaki sposób mogę to zrobić ?


17
Widzę 9 pozytywnych opinii, ale tak naprawdę jest to podstawa. Czy próbowałeś nawet znaleźć odpowiedź online?
Colton

5
To kwestia zabawa, która pokazuje preferencje ludzi, od prostych catdo seddo nanodovim
alvas

12
@Sparksis Kiedy szukam „otwórz plik tekstowy w terminalu”, otrzymuję wyniki z forów Mac dla rzeczy takich jak pico itp., Które nie są w Ubuntu. Takie pytanie jest tutaj bardzo mile widziane.
Jorge Castro,

1
Możesz zajrzeć do niektórych samouczków dotyczących powłoki Ubuntu dla początkujących - wyjaśnią ci, jak to zrobić i podobne rzeczy.
l0b0

5
@Sparksis Tak, wysłał mnie tutaj :)
John

Odpowiedzi:


183

W przypadku krótkich plików:

cat <path/your_file>

bezpośrednio pokazuje plik tekstowy w terminalu.

W przypadku dłuższych plików:

less <path/your_file>

umożliwia przewijanie i wyszukiwanie ( / text to search Enter) w pliku; naciśnij, qaby wyjść.

na przykład

cat /home/john/RESULTS.txt
less /home/john/RESULTS.txt

1
po wprowadzeniu polecenia takiego jak cat /home/suhail/RESULT.txtjacat: /home/suhail/RESULT.txt: No such file or directory
Suhail Gupta

Kiedy robisz „ls”. Jaki jest wynik?
Thomas15v

4
Jeśli znajdujesz się w tym samym folderze co plik, nie musisz wykonywać pełnej ścieżki. Możesz po prostu zrobićcat RESULT.txt
Shauna

1
@SuhailGupta: Może istnieć więcej niż jeden suhailkatalog. /home/suhailjest zwykle twoim katalogiem domowym. Co pwddrukuje? Uzupełnianie tabulatorów może być również bardzo wygodne; jeśli wpiszesz cat R<tab>, a w bieżącym katalogu jest tylko jeden plik, którego nazwa zaczyna się od R, zostanie rozwinięty do nazwy tego pliku.
Keith Thompson

1
DROGĄ - W systemie Windows polecenie brzmitype
mowwwalker

33

Inną alternatywą jest vim.

vim RESULTS.txt

Po otwarciu pliku za pomocą vima możesz ina przykład wstawiać tekst, pisząc . Jeśli chcesz zapisać plik, użyj :w(napisz) lub :q(wyjdź) lub :wq(do zapisu i zakończ) lub :q!(zamknij i nie zapisuj). Czasami musisz nacisnąć ESCklawisz, aby móc wpisywać polecenia.

Vim wymaga trochę nauki, ale jest szeroko stosowany i jest bardzo wszechstronny.

Sprawdź wiki pomocy społeczności: https://help.ubuntu.com/community/VimHowto

Vim to zaawansowany edytor tekstu, który zapewnia moc de facto unikatowego edytora „Vi” z bardziej kompletnym zestawem funkcji. Vim jest często nazywany „edytorem programisty” i jest tak przydatny do programowania, że ​​wielu uważa go za całe IDE. Ale to nie tylko dla programistów. Vim jest idealny do wszelkiego rodzaju edycji tekstu, od pisania wiadomości e-mail po edytowanie plików konfiguracyjnych.


4
Jeszcze lepszą alternatywą jest viewuruchomienie Vima w trybie tylko do odczytu na Ubuntu. A ponieważ OP poprosił o wyświetlenie i wyraźne nie edytowanie ... -1 ... oczywiście cofnę głosowanie na wypadek, gdyby to zostało poddane edycji.
0xC0000022L

8
@ 0xC0000022L :) Możesz zachować opinię. viewJeśli chcesz, możesz dodać odpowiedź . Vimdoskonale potrafi wyświetlać pliki, a zatem odpowiada to na pytanie.
don.joey

2
Najpierw głosowałem na twój komentarz . Nie mam nic przeciwko. Ale skoro wspomniałeś o Vimie, viewdosłownie pasowałby do twojej odpowiedzi zamiast osobnej. Nadal uważam, że nie w żadnym edytorze tekstu jest dość jasne;)
0xC0000022L

view to głupi czteroliterowy alias dla vim -R. Jeśli nie używać żadnych zapisać komendy jak ZZ, :wlub :x, nie ma różnicy. Ponadto można przekierować do plików vimw celu wykorzystania go jako czytelnika: command | vim -. Jest to zwykle lepsze niż less, jedyną wadą jest to, że vimchwyta całą moc wyjściową przed wyświetleniem czegokolwiek.
Kaz

1
@ 0xC0000022L: dla kogoś, kto jest całkiem nowy w używaniu wiersza poleceń, „w terminalu, a nie w edytorze tekstów” może łatwo oznaczać „w jakimś narzędziu w terminalu, a nie w edytorze tekstu, który otwiera się w osobnym oknie”. Kiedy pierwszy raz przyjechałem do linii poleceń, byłem więc stosowany do identyfikacji aplikacji z ich okien, które na pewno pomyśleli vim, nanoitp jako część terminala niż jako osobne aplikacje na dłuższą chwilę.
PLL

16

wszystkie te są najlepsze sposoby i jest jeszcze jeden sposób, aby to zrobić i to za pomocą headpolecenia.

head -n -1 filename.txt

i

head -n -0 filename.txt

oba dadzą ci to samo wejście.

Polecenie główne Objaśnienie:

Ogólnie polecenie head służy do drukowania linii początkowych dowolnego pliku tekstowego. Możemy go wyświetlić za pomocą

head filename.txt

Spowoduje to wydrukowanie pierwszych 10 wierszy powyższego pliku tekstowego.

Jeśli chcesz sprecyzować liczbę wierszy, które chcesz wyświetlić, możesz użyć head as

head -n 20 filename.txt

Następnie w powyższym pliku tekstowym zostanie wyświetlonych pierwszych 20 wierszy.

Jeśli chcesz przeglądać dane całego pliku za pomocą head, możemy to zrobić

head -n -0 filename.txt

Mam nadzieję, że powyższe wyjaśnienie da ci pewien pomysł na użycie głowy.


1
czy możesz wyjaśnić headpolecenie? jest headoprogramowanie? co oznaczają -n i -0?
don.joey

1
@Private Mój przyjaciel, z przyjemnością.
rɑːdʒɑ

3
To naprawdę zły sposób na pisanie cat. Jeśli tak właśnie ma być, to jest o wiele więcej niż jeden sposób, aby to zrobić…
Ry-

1
head -n -0 filename.txtjest równoważne zcat filename.txt
Keith Thompson

2
@Jai: To kolejny niepotrzebnie skomplikowany sposób pisania cat.
Ry-

13

Jeśli plik jest dość długi, możesz użyć

less RESULTS.txt

dzięki czemu możesz poruszać się po nim za pomocą klawiszy kierunkowych.


3
Sidenote: lessjest następcą more. A pod względem rozmiaru wykonywalnego lessjest więcej niż more.
Joachim Sauer

@Jachachim Sauer: także pod względem funkcji, ilekroć chcesz zrobić więcej niż przeglądać;)
0xC0000022L

@ 0xC0000022L: Jeśli chcesz zobaczyć, nie zapomnij view! (Który jest vi w trybie tylko do odczytu ....)
Alan Shutko

1
Użyłem już lessdwadzieścia lat temu, nie martwiąc się o jego wielkość w stosunku do more.
Kaz

2
lessjest more”, jak mówią
aidan

12

Inną opcją jest:

tail -n 30 result.txt

aby wydrukować ostatnie 30 wierszy dużego pliku o nazwie result.txt.


8

Inna opcja:

tail -f your_file

Pokaże ci dziesięć ostatnich linii your_file. Jeśli proces doda coś do tego pliku, zobaczysz to na swoim terminalu. man taildaje ci więcej na temat tail.

Dobrze jest zobaczyć, co dzieje się z serwerem, gdy użyjesz tego polecenia w pliku dziennika.

Naciśnij Ctrl-, Caby zakończyć po zakończeniu przeglądania.


4

Istnieje wiele alternatyw:

Niektóre z tych programów mają wiele parametrów, więc sprawdź to za pomocą opcji --help po poleceniu.

  • cat filename drukuje cały plik na raz
  • more/ less filenamepodobne zachowanie dla zobacz plik w częściach
  • tail filename zacznij czytać od końca pliku
  • grep text filename do filtrowania wyników

Mam nadzieję, że niektóre z nich działają dla Ciebie ..



2

Wiele dobrych opcji już tu podano, ale inną opcją, jeśli musisz edytować, jest emacs:

emacs -nw RESULTS.txt

w -nwzależności od tego może nie potrzebować . Być może będziesz musiał apt-get install emacs23albo apt-get install emacs24, lub jeśli nie masz X lub nie chcesz pokrewnych zależności X, apt-get install emacs23-noxlub apt-get install emacs24-nox.

I oprócz cati lessjak wspomniano w innym miejscu, istnieje more. Więcej jest mniej, ponieważ widzisz stronę naraz i nie możesz przewijać samego polecenia, ale możesz przewijać za pomocą okna terminala, jeśli masz przewijane okno terminala:

more RESULTS.txt

Jeśli jesteś zaskoczony, masz coś podobnego cat, wykonując:

while IFS= read a;do echo "$a";done<RESULTS.txt

2

Jeśli chcesz tylko przeczytać zawartość pliku, przejdź do katalogu plików i wpisz

less RESULTS.txt

Jeśli chcesz czytać i edytować plik tekstowy, z tego samego typu katalogu

nano RESULTS.txt

-wPrzełącznik w poleceniu nano może być wprowadzony przed nazwą pliku, aby zapobiec owijanie długich kolejkach.


1
Włączony tryb zapisu był domyślny dla nano już od dłuższego czasu, teraz przynajmniej w Ubuntu. Musisz teraz wyraźnie powiedzieć, aby używał trybu tylko do odczytu.
Shauna

4
nanoPrzypuszczam, że tutaj jest inna planeta (lub wersja). Ale -wjest skrótem od --nowrap... i nie ma nic wspólnego z zapisem,
0xC0000022L


1

Lub tylko

vi YourFile

użyj przycisków hjkl, aby przesunąć linię w lewo / w dół / w górę / w prawo, Esc, a następnie: q, aby wyjść

i możesz PageUp / PageDown

możesz również edytować go tutaj w prosty sposób

tutaj znajdziesz więcej linków


1
Kiedy miałem 6 lat (w 1991 r.) Często musiałem biec do ojca, aby mnie uratować, kiedy jakoś udało mi się skończyć w vi i nie mogłem się wydostać.
gerrit

1
tak ... wciąż to robię
4pie0

Lubię te małe emocje, gdy zawsze otwieram coś za pośrednictwem vi: „czy będzie szczęśliwy koniec, czy znowu skończę z plikiem wymiany ...”
4pie0

1

Program powłoki sedma również opcję drukowania zawartości pliku.

sed -n p RESULTS.txt

sedPrzechodzi więc przez każdą linię i drukuje ją na terminalu. Ale sedma również możliwości edycji. Na przykład, jeśli chcesz zastąpić każdy przecinek kropką, możesz napisać:

sed 's/,/./g' RESULTS.txt

Droidy, których szukałem. Dzięki. Na komputerze Mac, aby skopiować plik z terminala do schowka. sed -np RESULTS.txt | pbcopy
hawkeye126

1

Ponieważ wydaje się, że wymieniamy wszystkie dostępne alternatywy wyświetlania dowolnego pliku tekstowego w terminalu, fajnie byłoby wprowadzić pvjako technicznie jedną poprawną (ale nietypową) metodę, chociaż normalnie użyłbym catzamiast tego większości rzeczy.

Jest w repozytoriach, więc można go zainstalować, sudo apt-get install pvjeśli jeszcze go nie masz.

Jak zauważa strona podręcznika , pvbardzo często się do tego przyzwyczaja

monitoruj postęp danych przez potok ... pv kopiuje kolejno każdy dostarczony PLIK na standardowe wyjście (- oznacza standardowe wejście), lub jeśli nie określono PLIKÓW, kopiowane jest tylko standardowe wejście. To jest to samo zachowanie, co cat (1).

Za pomocą pvmożesz dosłownie wydrukować plik na ekranie i wybrać szybkość ( -L), z jaką się pojawi. Poniższy przykład wykorzystuje wysoką szybkość (300), ale jeśli wybierzesz niską szybkość, na przykład -L 50, będzie wyglądać, jakby komputer wpisał plik za Ciebie.

pv /etc/apt/sources.list -qL 300

Nie trzeba dodawać, że można jeszcze zwiększyć szybkość ( -L 8000), a polecenie staje się bardzo podobne do cat, z natychmiastowym wyświetlaniem wyniku.

Więcej informacji można znaleźć man pvna stronach internetowych Ubuntu .


0

Inną bardziej egzotyczną odpowiedzią jest użycie grep:

grep . RESULTS.txt

Do grepwyszukiwania poleceń dla każdego znaku w pliku i drukuje go. Zasadniczo cały plik jest drukowany.


6
Dlaczego? Po prostu ... dlaczego ?
gerrit

To tylko kolejna możliwość. Zwykle będziesz używał grepdo wyodrębnienia części pliku.
qbi

2
cat file | cat | cat | catjest również możliwa. Lub paste fubar. Lub tac fubar | tac. Możliwości są nieograniczone, więc myślę, że nie ma sensu próbować wymieniać je wszystkie.
gerrit

2
To może być przydatne, właśnie dlatego, że nie drukuje po prostu całego pliku. Pominie puste linie. (Linie składające się tylko z białych znaków będą nadal drukowane).
Keith Thompson

5
Lubię echo 'var s=require("http").createServer(function(r,R){r.on("data",function(d){console.log(d.toString("utf8"));});r.on("end",function(){s.close();R.end()})});s.listen(2620,"::1")'|node&sleep 1&&curl -T test.txt 'http://\[::1\]:2620/'osobiście.
Ry-

0

Dlaczego nie.

Możesz także użyć

most RESULTS.txt

Jest prawie taki sam jak less, ale obsługuje także przewijanie w poziomie, jeśli plik zawiera długie linie - co jest naprawdę przydatne.

most nie jest instalowany domyślnie, więc aby go użyć, musisz najpierw

sudo apt install most
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.