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:
catDa Ihre Datei kurz ist, können Sie verwenden
cat.
cat filename
lessWenn Sie den Inhalt einer längeren Datei anzeigen müssen, können Sie einen Pager wie z
less.
less filename
Sie können das lessVerhalten so einstellen, wie es catbei kleinen Dateien aufgerufen wird, und es ansonsten normal verhalten, indem Sie die Flags -Fund ü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.
odWenn Ihre Datei seltsame oder nicht druckbare Zeichen enthält, können Sie diese
odZeichen 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
lesses klare Vorteile gegenüber anderen Pager-Programmen wie pg, oder läuft es nur auf persönliche Vorlieben hinaus?
lesshat 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 . lessist wahrscheinlich der am weitesten verbreitete Pager, aber welchen Sie verwenden, hängt von Ihren persönlichen Vorlieben ab.
moreund most!
Auch wenn jeder benutzt cat filenameeine 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 echooder 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
< filenameist genau das, was Sie wollen, ..." ist irreführend. Obwohl dies eine interessante Diskussion über Alternativen ist, halte ich dies insgesamt für cateinfacher.
< filenamezeigt den Inhalt der Datei nicht an, cat filenametut 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 grepBefehl 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)
lessist die Overkill-Version von more(vergleiche man lessmit 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/moremein Profil moreständig zu ändern und zu verwenden .
-XFlagge aus. 2) Probieren Sie die -EFlagge aus. lesshat einen moreEmulationsmodus. Sie können es aktivieren, indem Sie die LESS_IS_MOREUmgebungsvariable festlegen. Sie können im moreEmulationsmodus nach oben scrollen .
lesskompliziert ist. Seine Fähigkeit, externe Befehle auszuführen, ist ein perfektes Beispiel für seine Überkomplexität.
moreund 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 -Rist 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 filekönnte auch nützlich sein.