Ich möchte den Inhalt einer Textdatei in der Befehlszeile anzeigen. Die Datei enthält nur 5-6 Zeichen. Gibt es eine einfache Möglichkeit, dies zu tun?
Antwort
Verwenden Sie cat
Da Ihre Datei kurz ist, können Sie cat
verwenden.
cat filename
Verwenden von less
Wenn Sie den Inhalt einer längeren Datei anzeigen müssen, können Sie einen Pager verwenden wie less
.
less filename
Sie können festlegen, dass sich less
beim Aufrufen kleiner Dateien wie cat
verhält, und sich ansonsten normal verhalten, indem Sie -F
und -X
Flags.
less -FX filename
Ich habe einen Alias für less -FX
. Sie können einen selbst so erstellen:
alias aliasname="less -FX"
Wenn Sie den Alias zu Ihrer Shell-Konfiguration hinzufügen können Sie es für immer verwenden.
Verwenden von od
Wenn Ihre Datei seltsame oder nicht druckbare Zeichen enthält, können Sie od
, um die Zeichen zu untersuchen. Beispiel:
$ 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
Kommentare
- +1, auch
sed -n l file
könnte nützlich sein. - Hat
less
klare Vorteile gegenüber anderen Pager-Programmen wiepg
oder läuft es nur auf persönliche Vorlieben hinaus? - @SamWeinberg:
less
hat mehr Funktionen alspg
. Schauen Sie sich dieless(1)
undpg(1)
Manpages. Es gibt auch andere Pager. Schauen Sie sich unix.stackexchange.com/questions/81129/… an.less
ist wahrscheinlich der am häufigsten verwendete Pager, aber welcher Sie verwenden, hängt von Ihren persönlichen Vorlieben ab. - don ‚ Vergessen Sie nicht
more
undmost
!
Antwort
Obwohl jeder cat filename
verwendet, um einen Dateitext auf die Standardausgabe zu drucken, ist der erste Zweck con cat enating. Auf der Manpage von cat:
cat – verketten Sie Dateien und drucken Sie auf der Standardausgabe
Jetzt kann cat Dateien gut drucken, aber es gibt Alternativen:
echo "$(<filename)" or printf "%s" "$(<filename)"
Die ( )
gibt zurück Der Wert eines Ausdrucks, in diesem Fall der Inhalt von Dateiname , der dann für echo
um $
erweitert wird oder printf
.
Update:
< filename
Dies macht genau das, was Sie wollen und ist leicht zu merken.
Hier ist ein Beispiel, mit dem Sie eine Datei in einem Menü auswählen und dann drucken können.
#!/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
Weitere Informationen Lesen:
BashPitfalls – Katzendatei | sed s / foo / bar /> Datei
Bash-Referenz – Umleiten
Kommentare
- Ihr Update: “
< filename
ist genau wh auf Wunsch … “ ist irreführend. Obwohl dies eine interessante Diskussion über Alternativen ist, denke ich, dasscat
einfacher ist. - Bare
< filename
nicht Zeigen Sie den Inhalt der Datei an, abercat filename
tut dies. - Sie können auch
tee < filename
verwenden. - +1 für den
echo "$(<filename)"
Bashismus. Davon reicht hier nicht genug. - Diese ‚ ist eine großartige Idee für die Verwendung des internen Linux-Befehls mit echo
"$(<filename)"
. Danke …
Antwort
Tools zum Umgang mit Textdateien unter Unix sind grundlegende Alltagsbefehle:
Unter Unix und Linux zum Ausdrucken des gesamten Inhalts in der Datei
cat filename.txt
oder
more filename.txt
oder
less filename.txt
Für die letzten paar Zeilen
tail filename.txt
Für erste Zeilen
head filename.txt
Antwort
Mit dem folgenden Befehl können Sie Inhalte anzeigen einer Textdatei.
cat filename
Kommentare
- Weitere Informationen zu
cat
, führen Sieman cat
aus.
Antwort
Eine Option ist die Verwendung von more
, zmore file.txt
Es wurden jedoch nicht alle Funktionen von less
hinzugefügt.
Ein einfaches Beispiel ist das Sie können in der Ausgabe nicht nach oben scrollen. Im Allgemeinen wurde sie von weniger abgelöst – was im Scherz benannt wurde, weil
weniger mehr ist
Kommentare
- Schöne Erklärung, warum der Name weniger war
Antwort
Ich verwende immer $ less "your file here"
, da es sehr einfach ist und ein eingebautes interaktives grep
Befehl und bietet Ihnen eine benutzerfreundliche Oberfläche, die Sie mit den Pfeiltasten scrollen können.
(Er ist auch in fast jedem * nix-System enthalten)
Kommentare
-
less
ist die Overkill-Version vonmore
(vergleicheman less
mitman more
) und für mich hat es zwei nervige Funktionen: 1) Es wechselt zum alternativen Bildschirmpuffer. Wenn weniger beendet wird, verschwindet die gerade angezeigte Datei. 2) Bei EOF müssen Sie explizitq
eingeben (ich weiß, dort ‚ ist eine Option dafür). Eine meiner ersten Aktionen in einer neuen Umgebung ist das Festlegen vonexport PAGER=/bin/more
in meinem Profil und die ständige Verwendung vonmore
. - @ ott–: 1) Probieren Sie das Flag
-X
aus. 2) Probieren Sie das Flag-E
aus.less
hat einenmore
-Emulationsmodus. Sie können es aktivieren, indem Sie die UmgebungsvariableLESS_IS_MORE
festlegen. Sie können im Emulationsmodusmore
nach oben scrollen. - Siehe auch: unix.stackexchange.com/questions / 81129 / …
- Im Allgemeinen stimme ich jedoch zu, dass
less
übermäßig ist. kompliziert. Die Fähigkeit, externe Befehle auszuführen, ist ein perfektes Beispiel für die Überkomplexität. - @EvanTeitelman Ich ‚ fand die grep-Funktionalität selbst immer äußerst nützlich, @ott – Ich finde, dass ‚ die Emulation von
more
und ‚ Mit vielen zusätzlichen Funktionen macht es die Arbeit sehr gut.
Antwort
Wenn es sich um eine große Datei handelt, und Wenn Sie nach einem bestimmten Teil suchen möchten, können Sie
cat filename | grep text_to_search -ni
verwenden. Sie können auch einen interaktiveren Vim-Editor verwenden (oder einen vi-Editor, wenn Sie kein Vim haben):
vim filename Or vi filename
Vim / vi ist ein großartiger Editor, kann auch als Lesegerät im „Normalmodus“ oder mit der Option -R verwendet werden und verfügt über viele Funktionen wird Ihnen beim Durchsuchen der Datei helfen.
Kommentare
- Kürzere für
vim -R
istview
. Beachten Sie jedoch, dass es keine Umleitungen mag, wie in xargs und vi – „Eingabe erfolgt nicht von einem Terminal“ beschrieben. - danke @manatwork für die Heads Up! Ich habe vor kurzem angefangen, Vim zu verwenden, und ich mag es wegen seiner verschiedenen Funktionen. In Bezug auf Weiterleitungen habe ich das vergessen, danke für die Erinnerung. Ab sofort arbeite ich an einer Remote-VM, auf der ich ssh ohne GUI-Schnittstelle verwende. Daher ist Vim von großem Nutzen, wenn ein anderer GUI-Editor nicht funktioniert, nämlich ‚ s Warum habe ich hier Vim hervorgehoben?
Antwort
Verwenden Sie den Befehl cat, um den Inhalt des Dateinamens anzuzeigen. cat Dateiname
Verwenden Sie den Befehl vim, um die Datei zu bearbeiten. vim Dateiname