Wie öffne ich eine Textdatei in meinem Terminal?


152

Es gibt eine Datei mit dem Namen RESULTS.txtund ich möchte diese Datei in meinem Terminal öffnen. (Ich möchte, dass der Inhalt der Datei im Terminal und nicht in einem Texteditor angezeigt wird.)

Wie mache ich das ?


17
Ich sehe 9 positive Stimmen, aber das ist wirklich grundlegend. Haben Sie überhaupt versucht, online nach der Antwort zu suchen?
Colton,

5
Es ist eine lustige Frage , die die Präferenzen der Menschen, von der einfachen zeigt catbis sedzu nanozuvim
alvas

12
@Sparksis Wenn ich nach "Öffnen einer Textdatei in einem Terminal" suche, erhalte ich Ergebnisse aus Mac-Foren für Dinge wie Pico usw., die nicht in Ubuntu sind. Diese Art von Frage ist hier sehr willkommen.
Jorge Castro

1
Vielleicht möchten Sie sich ein paar Ubuntu-Shell-Tutorials für Anfänger ansehen - Sie werden erklären, wie dies und ähnliche Dinge zu tun sind.
l0b0

5
@Sparksis Ja, es hat mich hierher geschickt :)
Johnc

Antworten:


183

Für kurze Dateien:

cat <path/your_file>

zeigt direkt eine Textdatei im Terminal an.

Für längere Dateien:

less <path/your_file>

lässt Sie / text to search Enterin der Datei scrollen und suchen ( ); Drücken Sie, qum das Menü zu verlassen.

z.B

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

1
auf einen Befehl eingeben , wie cat /home/suhail/RESULT.txtbekomme ich diesecat: /home/suhail/RESULT.txt: No such file or directory
Suhail Gupta

Wenn Sie "ls" tun. Was ist das Ergebnis als?
Thomas15v

4
Wenn Sie sich im selben Ordner wie die Datei befinden, müssen Sie nicht den vollständigen Pfad angeben. Sie können nur tuncat RESULT.txt
Shauna

1
@SuhailGupta: Es kann mehr als ein suhailVerzeichnis geben. /home/suhailist normalerweise Ihr Heimatverzeichnis. Was pwddruckt? Das Ausfüllen von Registerkarten kann auch sehr praktisch sein. Wenn Sie etwas eingeben cat R<tab>und nur eine Datei im aktuellen Verzeichnis vorhanden ist, deren Name mit "" beginnt R, wird sie auf den Namen dieser Datei erweitert.
Keith Thompson

1
Übrigens - Unter Windows lautet der Befehltype
mowwwalker

33

Eine andere Alternative ist vim.

vim RESULTS.txt

Sobald Sie eine Datei mit vim geöffnet haben, können Sie beispielsweise Text durch Eingabe einfügen i. Wenn Sie Ihre Datei speichern möchten, verwenden Sie :w(schreiben) oder :q(beenden) oder :wq(schreiben und beenden) oder :q!(beenden und nicht speichern). Manchmal müssen Sie die ESCTaste drücken, um die Befehle eingeben zu können.

Vim erfordert etwas Lernen, ist aber weit verbreitet und sehr vielseitig.

Überprüfen Sie das Community-Hilfe-Wiki: https://help.ubuntu.com/community/VimHowto

Vim ist ein erweiterter Texteditor, der die Leistungsfähigkeit des De-facto-Unix-Editors 'Vi' mit einem umfassenderen Funktionsumfang ausstattet. Vim wird oft als "Programmer's Editor" bezeichnet und ist für die Programmierung so nützlich, dass viele es für eine komplette IDE halten. Es ist jedoch nicht nur für Programmierer. Vim eignet sich perfekt für alle Arten der Textbearbeitung, von der Erstellung von E-Mails bis zur Bearbeitung von Konfigurationsdateien.


4
Eine noch bessere Alternative ist view, Vim unter Ubuntu im Nur-Lese-Modus zu starten. Und da das OP darum gebeten hat, zu sehen und ausdrücklich nicht zu bearbeiten ... -1 ... werde ich natürlich die Ablehnung zurücknehmen, falls dies bearbeitet wird.
0xC0000022L

8
@ 0xC0000022L :) Du kannst die Ablehnung behalten. Sie können gerne eine Antwort hinzufügen, viewwenn Sie möchten. Vimist perfekt in der Lage, Dateien anzuzeigen und damit die Frage zu beantworten.
don.joey

2
Ich habe Ihren Kommentar zuerst positiv bewertet . Für mich in Ordnung. Aber da Sie Vim erwähnt haben, viewwürde dies buchstäblich in Ihre Antwort passen, anstatt in eine separate. Ich denke immer noch, dass und nicht in einigen Texteditoren ziemlich klar ist;)
0xC0000022L

view ist ein blöder Alias ​​für vier Buchstaben vim -R. Wenn Sie nicht jeden Befehl speichern verwenden wie ZZ, :woder :x, gibt es keinen Unterschied. Sie können auch Dateien umleiten zu vimihm als Leser zu benutzen command | vim -. Dies ist in der Regel besser als less, der einzige Nachteil ist, dass vimdie gesamte Ausgabe vor der Anzeige geschnappt wird.
Kaz

1
@ 0xC0000022L: Für jemanden, der noch nicht mit der Befehlszeile vertraut ist, kann "im Terminal und nicht in einem Texteditor" leicht "in einem Dienstprogramm im Terminal, nicht in einem Texteditor, der in einem separaten Fenster geöffnet wird" bedeuten. Wenn ich an die Befehlszeile zuerst kam, wurde ich auf der Identifizierung von Anwendungen mit ihren Fenstern so verwendet , dass ich von sicherlich gedacht vim, nanoetc. als Teil des Terminals und nicht als separate Anwendungen für eine ganze Weile.
PLL

16

All dies sind die besten Möglichkeiten, und es gibt noch eine Möglichkeit, dies zu tun, und das ist mit headBefehl.

head -n -1 filename.txt

und

head -n -0 filename.txt

Beide geben Ihnen den gleichen Input.

Kopfbefehl Erläuterung:

Im Allgemeinen wird der Befehl head verwendet, um die Anfangszeilen einer beliebigen Textdatei zu drucken. Mit können wir die Textdatei anzeigen

head filename.txt

Dadurch werden die ersten 10 Zeilen der obigen Textdatei gedruckt.

Wenn Sie festlegen möchten, wie viele Zeilen angezeigt werden sollen, können Sie head as verwenden

head -n 20 filename.txt

Dann werden in der obigen Textdatei die ersten 20 Zeilen angezeigt.

Wenn Sie ganze Dateidaten mit head means betrachten wollen, dann können wir sie bekommen

head -n -0 filename.txt

Hoffe, dass die obige Erklärung Ihnen eine Vorstellung von der Verwendung des Kopfes gibt.


1
Kannst du den headBefehl erklären ? ist headSoftware? Wofür stehen -n und -0?
don.joey

1
@Private Mein Freund, gerne.
Donnerstag,

3
Dies ist nur eine wirklich schlechte Art zu schreiben cat. Wenn das so sein soll, dann gibt es weit mehr als diese eine Möglichkeit, es zu tun ...
Ry-

1
head -n -0 filename.txtentsprichtcat filename.txt
Keith Thompson

2
@ Jai: Es ist eine andere unnötig komplizierte Art zu schreiben cat.
Ry

13

Wenn die Datei ziemlich lang ist, möchten Sie möglicherweise verwenden

less RESULTS.txt

damit Sie mit den Richtungstasten hindurch navigieren können.


3
Sidenote: lessist der Nachfolger von more. Und in Bezug auf die ausführbare Größe lessist mehr als more.
Joachim Sauer

@ Joachim Sauer: auch in Bezug auf Funktionen, wann immer Sie mehr als anzeigen möchten;)
0xC0000022L

@ 0xC0000022L: Wenn du anzeigen willst, vergiss nicht view! (Das ist vi im schreibgeschützten Modus ....)
Alan Shutko

1
Ich lesshabe es schon vor zwanzig Jahren benutzt, ohne mich um seine Größe zu sorgen more.
Kaz

2
" lessist more", wie sie sagen
aidan

12

Eine andere Option ist:

tail -n 30 result.txt

um die letzten 30 Zeilen einer großen Datei mit dem Namen auszudrucken result.txt.


8

Andere Option:

tail -f your_file

Es zeigt Ihnen die letzten zehn Zeilen von your_file. Wenn ein Prozess etwas an diese Datei anfügt, wird dies auf Ihrem Terminal angezeigt. man tailgibt dir mehr an tail.

Es ist hilfreich zu sehen, was mit einem Server passiert, wenn Sie diesen Befehl in einer Protokolldatei verwenden.

Drücken Sie Ctrl-, Cum den Vorgang zu beenden, wenn Sie fertig sind.


4

Dafür gibt es viele Alternativen:

Einige dieser Programme haben viele Parameter, überprüfen Sie dies also mit --help nach dem Befehl.

  • cat filename druckt die ganze Datei auf einmal
  • more/ less filenameähnliches Verhalten für die Datei in Teilen zu sehen
  • tail filename Beginnen Sie mit dem Lesen am Ende der Datei
  • grep text filename zum Filtern von Ergebnissen

Hoffe, dass etwas davon für Sie funktioniert ..



2

Viele gute Optionen stehen hier bereits zur Verfügung, aber eine andere Option, die Sie bearbeiten müssen, ist Emacs:

emacs -nw RESULTS.txt

braucht das vielleicht nicht -nw, je nachdem. Möglicherweise müssen Sie auch apt-get install emacs23oder apt-get install emacs24, oder wenn Sie kein X haben oder keine verwandten X-Abhängigkeiten möchten, apt-get install emacs23-noxoder apt-get install emacs24-nox.

Und zusätzlich zu catund lesswie an anderer Stelle erwähnt, gibt es more. Mehr ist weniger, weil Sie eine Seite gleichzeitig sehen und nicht über den Befehl selbst scrollen können. Sie können jedoch mit dem Terminalfenster scrollen, wenn Sie ein scrollendes Terminalfenster haben:

more RESULTS.txt

Wenn Sie in der Bash sind, haben Sie etwas Ähnliches wie cat:

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

2

Wenn Sie nur den Dateiinhalt lesen möchten, gehen Sie in das Dateiverzeichnis und geben Sie Folgendes ein

less RESULTS.txt

Wenn Sie die Textdatei lesen und bearbeiten möchten, verwenden Sie denselben Verzeichnistyp

nano RESULTS.txt

Der -wSchalter im Befehl nano kann vor dem Dateinamen eingefügt werden, um das Umbrechen langer Zeilen zu verhindern.


1
Der Schreibmodus für Nano ist schon seit einiger Zeit der Standard, zumindest in Ubuntu. Sie müssen ihn jetzt explizit anweisen, den schreibgeschützten Modus zu verwenden.
Shauna

4
Ein anderer Planet (oder eine andere nanoVersion) hier, nehme ich an. Aber -wist die Abkürzung für --nowrap... und hat nichts mit Schreiben zu tun,
0xC0000022L

1

Wenn Sie den Inhalt der Datei bearbeiten müssen, verwende ich normalerweise nano.

nano filename

1

oder nur

vi YourFile

Verwenden Sie die Tasten hjkl, um die Zeile nach links / unten / oben / rechts zu verschieben, Esc und dann: q, um den Vorgang zu beenden

und Sie können PageUp / PageDown

Sie können es hier auch strikt bearbeiten

Hier finden Sie weitere Links


1
Als ich 6 Jahre alt war (1991), musste ich oft zu meinem Vater rennen, um mich zu retten, als ich es irgendwie schaffte, in vi zu landen und nicht herauszukommen.
Gerrit

1
ja ... ich mache es immer noch
4pie0

Ich mag diese kleinen Emotionen, wenn ich immer etwas über vi öffne: "Wird es ein Happy End geben oder werde ich wieder mit der Auslagerungsdatei fertig sein ..."
4pie0

1

Das Shell-Programm sedbietet auch die Möglichkeit, den Inhalt einer Datei auszudrucken.

sed -n p RESULTS.txt

So sedgeht durch jede Zeile und druckt es zum Terminal. Hat aber sedauch Bearbeitungsmöglichkeiten. Wenn Sie beispielsweise jedes Komma durch einen Punkt ersetzen möchten, können Sie Folgendes schreiben:

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

Die Droiden, nach denen ich gesucht habe. Vielen Dank. Auf dem Mac, um die Datei vom Terminal in die Zwischenablage zu kopieren. sed -np RESULTS.txt | pbcopy
hawkeye126

1

Da wir scheinbar alle verfügbaren Alternativen für die Anzeige von Textdateien im Terminal auflisten, wäre es sehr lustig, eine pvtechnisch gültige (aber ungewöhnliche) Methode einzuführen , obwohl ich catfür die meisten Dinge normalerweise stattdessen eine verwende.

Es befindet sich in den Repositories und kann daher mit installiert werden, sudo apt-get install pvwenn Sie es noch nicht haben.

Wie die Manpage feststellt, pvist das sehr oft gewohnt

Überwachen des Datenfortschritts über eine Pipe ... pv kopiert jede gelieferte DATEI der Reihe nach in die Standardausgabe (- bedeutet Standardeingabe) oder, wenn keine DATEIEN angegeben sind, wird nur die Standardeingabe kopiert. Dies ist das gleiche Verhalten wie bei Katze (1).

Mit können pvSie die Datei buchstäblich auf dem Bildschirm ausdrucken und die Rate ( -L) auswählen, mit der sie angezeigt wird. Im folgenden Beispiel wird eine hohe Rate (300) verwendet. Wenn Sie jedoch eine niedrige Rate wie auswählen -L 50, wird dies so angezeigt, als würde der Computer die Datei für Sie ausschreiben.

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

Selbstverständlich können Sie die Rate weiter erhöhen ( -L 8000), und der Befehl wird sehr ähnlich cat, wobei die Ausgabe sofort angezeigt wird.

Weitere Informationen finden Sie unter man pvoder in den Ubuntu-Online-Hilfeseiten .


0

Eine weitere exotischere Antwort lautet grep:

grep . RESULTS.txt

Der grepBefehl sucht nach jedem Zeichen in der Datei und druckt es aus. Grundsätzlich wird also die komplette Datei ausgedruckt.


6
Warum? Nur ... warum ?
Gerrit

Es ist nur eine andere Möglichkeit. Normalerweise werden Sie verwenden grep, um Teile einer Datei zu extrahieren.
Qbi

2
cat file | cat | cat | catist auch eine möglichkeit. Oder paste fubar. Oder tac fubar | tac. Die Möglichkeiten sind unendlich, daher halte ich es für ziemlich sinnlos, sie alle aufzulisten.
Gerrit

2
Das könnte tatsächlich nützlich sein, gerade weil nicht einfach die gesamte Datei gedruckt wird. Es werden leere Zeilen übersprungen. (Zeilen, die nur aus Leerzeichen bestehen, werden noch gedruckt.)
Keith Thompson

5
Ich 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/'persönlich mag .
Ry

0

Warum nicht.

Sie können auch verwenden

most RESULTS.txt

Es ist fast dasselbe wie less, aber es unterstützt auch horizontales Scrollen, wenn die Datei lange Zeilen enthält - was sehr praktisch ist.

most ist nicht standardmäßig installiert. Um es zu verwenden, müssen Sie es zuerst installieren

sudo apt install most
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.