Wie kann ich den aktuellen Inhalt von less in einer Datei speichern?


91

Wenn ich die Ergebnisse eines Befehls an weitergeleitet lessund dann entschieden habe, dass ich den Inhalt in einer Datei speichern möchte, ist dies möglich?

Ich habe versucht, eine Markierung aam Ende des Puffers zu setzen und dann zum Anfang zurückzukehren und |aviden gesamten Inhalt mit an zu senden vi, aber das funktioniert nicht.


1
Ihre ursprüngliche Technik würde funktionieren, wenn Sie vi anweisen würden, von stdin zu laden |avi -.
Joe Shaw

Antworten:


102

Auf meinem System, man lesssagt

       s Dateiname
              Speichern Sie die Eingabe in eine Datei. Dies funktioniert nur, wenn die Eingabe a ist
              Pipe, keine gewöhnliche Datei.

Funktioniert bei mir!


4
Irgendwie funktioniert das bei mir nicht - durch Tippen von 's' wird das Fenster um eine Zeile verschoben. Ich bin auf einem Mac.
Freitag,

2
@benroth: Sie haben wahrscheinlich eine lesskeyDatei, die die normalen Befehle ändert. Sieheman lesskey
RedGrittyBrick

8
sfunktioniert bei mir auch nicht, aber -o file.
user1338062

1
Und warum um alles in der Welt wird dies nicht erwähnt, wenn ich 'h' eingebe, um interaktive Hilfe zu erhalten? +1, wenn Sie die interaktive Hilfe gelesen und daher nicht darüber nachgedacht haben, zu konsultieren man less...
Peter V. Mørch

1
@comfreak: Ja, es ist in Ubuntu 18.04 in weniger als 487, aber nicht in weniger als 481 in Debian 9 / stretch / stable
Peter V. Mørch

24

Die akzeptierte Antwort funktioniert auf dem Mac nicht - wie @benroth sagt, sbewegt sich das Drücken von nur eine Zeile nach unten - aber Sie können eine andere Methode verwenden.

In less --help:

|Xcommand            Pipe file between current pos & mark X to shell command.

und

A mark is any upper-case or lower-case letter.
Certain marks are predefined:
     ^  means  beginning of the file
     $  means  end of the file

Also, wenn Sie an die Spitze des Puffers gehen ( <) und dann:

|$cat > /tmp/foo.txt

Der Inhalt des Puffers wird in geschrieben /tmp/foo.txt.


Diese Methode kann besonders nützlich sein, wenn Sie den aktuellen Puffer über einen anderen Befehl weiterleiten möchten.
Doron Behar

3

Wenn Ihr lessgeöffnet ist, können Sie die gesamte Ausgabe in einer Datei speichern. Wie vimunterstützt weniger Befehle.

Geben Sie einfach den Schlüssel ein sund lessSie werden nach dem Namen der Datei gefragt, in der Sie den Inhalt speichern möchten. Geben Sie einfach den Dateinamen ein und geben Sie dann ein Enter.

Prost


0

Verwenden Sie den >Operator. Zum Beispiel: less foo.bar > output.txt.


Danke @Dror, aber ich bin schon in der weniger Anwendung, nicht mehr an der Bash-Eingabeaufforderung
Jonathan Day

Ein wertvoller Beitrag zum Q / A. Anstatt eine völlig separate Frage zu stellen, können Benutzer, die eine Methode zum Skripten mehrerer Dateien über den Less Viewer benötigen, viele Vorteile erzielen. Hat mir Stunden Arbeit erspart (nach langem Suchen). Vielen Dank!
LD James

0

Nein, wenn Sie weniger begonnen haben, aber wenn Sie wissen, bevor Sie es an weniger und eine Datei senden möchten, können Sie den Befehl tee verwenden

command | tee out_file | less

Vielen Dank, Mark, aber ich schaue speziell nach, wie ich es machen soll, wenn ich schon in weniger bin
Jonathan Day,

0

Meine Antwort kommt ein bisschen zu spät, glaube ich. Aber nur als Referenz, als Antwort auf die oben genannte Besorgnis von benroth: Für OSX-Benutzer gibt es immer die Möglichkeit, den Inhalt des Pagers in eine Protokolldatei zu speichern, indem die Option "-l" (read DASH ELL ) an der Doppelpunkt-Eingabeaufforderung verwendet wird.

Der Pager fordert eine Protokolldatei an. Geben Sie es ein und drücken Sie [CR]

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.