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?
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?
Antworten:
cat
Da Ihre Datei kurz ist, können Sie verwenden
cat
.
cat filename
less
Wenn Sie den Inhalt einer längeren Datei anzeigen müssen, können Sie einen Pager wie z
less
.
less filename
Sie können das less
Verhalten so einstellen, wie es cat
bei kleinen Dateien aufgerufen wird, und es ansonsten normal verhalten, indem Sie die Flags -F
und übergeben -X
.
less -FX filename
Ich habe einen Alias für less -FX
. Du kannst es dir so machen:
alias aliasname='less -FX'
Wenn Sie den Alias zu Ihrer Shell-Konfiguration hinzufügen , können Sie ihn für immer verwenden.
od
Wenn Ihre Datei seltsame oder nicht druckbare Zeichen enthält, können Sie diese
od
Zeichen untersuchen. Zum 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
less
es klare Vorteile gegenüber anderen Pager-Programmen wie pg
, oder läuft es nur auf persönliche Vorlieben hinaus?
less
hat mehr Funktionen als pg
. Schauen Sie sich die Hilfeseiten less(1)
und an pg(1)
. Es gibt auch andere Pager. Schauen Sie sich unix.stackexchange.com/questions/81129/… an . less
ist wahrscheinlich der am weitesten verbreitete Pager, aber welchen Sie verwenden, hängt von Ihren persönlichen Vorlieben ab.
more
und most
!
Auch wenn jeder benutzt cat filename
eine Text - Dateien in der Standardausgabe ersten Zweck zu drucken ist con Katze enating. Aus der Manpage der Katze:
cat - Dateien verketten und auf der Standardausgabe drucken
Jetzt ist cat in Ordnung, um Dateien zu drucken, aber es gibt Alternativen:
echo "$(<filename)"
or
printf "%s" "$(<filename)"
Das ( )
gibt den Wert eines Ausdrucks, in diesem Fall den Inhalt der Dateiname , die dann expandiert wird , indem $
für echo
oder printf
.
Aktualisieren:
< filename
Dies macht genau das, was Sie wollen und ist leicht zu merken.
In diesem Beispiel können Sie eine Datei in einem Menü auswählen und anschließend drucken.
#!/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
Zum
weiterlesen : BashPitfalls - cat file | sed s / foo / bar /> Datei-
Bash-Referenz - Umleiten
< filename
ist genau das, was Sie wollen, ..." ist irreführend. Obwohl dies eine interessante Diskussion über Alternativen ist, halte ich dies insgesamt für cat
einfacher.
< filename
zeigt den Inhalt der Datei nicht an, cat filename
tut dies jedoch.
tee < filename
.
echo "$(<filename)"
Bashismus. Nicht genug davon hier.
"$(<filename)"
. Vielen Dank ...
Tools für den Umgang mit Textdateien unter Unix sind einfache, alltägliche Befehle:
Unter Unix und Linux, um den gesamten Inhalt in einer Datei auszudrucken
cat filename.txt
oder
more filename.txt
oder
less filename.txt
Für die letzten paar Zeilen
tail filename.txt
Für die ersten paar Zeilen
head filename.txt
Eine Option ist zu verwenden more
z.B more file.txt
Es wurden jedoch nicht alle Funktionen von hinzugefügt less
.
Ein einfaches Beispiel ist, dass Sie in der Ausgabe keinen Bildlauf durchführen können. Im Allgemeinen wurde es von weniger überholt - was im Scherz weil genannt wurde
weniger ist mehr
Ich benutze immer $ less "your file here"
, da es sehr einfach ist, einen eingebauten interaktiven grep
Befehl bietet und Ihnen eine benutzerfreundliche Oberfläche bietet, die Sie mit den Pfeiltasten scrollen können.
(Es ist auch in fast jedem * nix-System enthalten)
less
ist die Overkill-Version von more
(vergleiche man less
mit man more
) und hat für mich zwei nervige Features: 1) es wechselt zum alternativen Bildschirmpuffer, wenn weniger terminiert, verschwindet die Datei, die du gerade ansiehst 2) bei EOF musst du explizit tippen q
(Ich weiß, es gibt eine Option dafür). Eine meiner ersten Aktionen in einer neuen Umgebung ist es, export PAGER=/bin/more
mein Profil more
ständig zu ändern und zu verwenden .
-X
Flagge aus. 2) Probieren Sie die -E
Flagge aus. less
hat einen more
Emulationsmodus. Sie können es aktivieren, indem Sie die LESS_IS_MORE
Umgebungsvariable festlegen. Sie können im more
Emulationsmodus nach oben scrollen .
less
kompliziert ist. Seine Fähigkeit, externe Befehle auszuführen, ist ein perfektes Beispiel für seine Überkomplexität.
more
und der vielen zusätzlichen Funktionen sehr gut funktioniert.
Wenn es sich um eine große Datei handelt und Sie einen bestimmten Teil durchsuchen möchten, können Sie verwenden
cat filename | grep text_to_search -ni
Sie können auch einen interaktiveren Vim-Editor verwenden (oder einen vi-Editor, wenn Sie keinen Vim haben):
vim filename
Or
vi filename
Vim / vi ist ein großartiger Editor, der auch als Leser im "Normalen Modus" oder mit der Option -R verwendet werden kann. Er verfügt über viele Funktionen, die Ihnen beim Durchsuchen der Datei helfen.
vim -R
ist view
. Beachten Sie jedoch, dass es keine Weiterleitungen mag, wie in xargs und vi beschrieben - „Eingabe erfolgt nicht von einem Terminal“ .
Verwenden Sie den Befehl cat, um den Inhalt des Dateinamens anzuzeigen. Katzendateiname
Verwenden Sie den Befehl vim, um die Datei zu bearbeiten. vim dateiname
sed -n l file
könnte auch nützlich sein.