Wie schreibe ich alle Zeilen von less in eine Datei?

76

Ich habe einen Befehl an weitergeleitet lessund möchte nun die Ausgabe des Befehls in einer Datei speichern. Wie mache ich das?

In diesem Fall möchte ich nicht verwenden tee, ich möchte eine Lösung direkt von weniger, so dass ich keinen lang laufenden Befehl erneut ausführen muss, wenn ich vergessen habe, zu verwenden tee.

Diese Frage ähnelt dieser, der einzige Unterschied ist, dass ich alle Zeilen speichern möchte, keine Teilmenge: Schreiben Sie Zeilen in eine Datei von weniger

Flimm
quelle

Antworten:

106

Von lessGeben Sie sden Dateinamen Sie geben speichern möchten, dann Enter.
Von der manSeite unter COMMANDS:

s filename
      Save the input to a file.  This only works if the input is a pipe, not an ordinary file.

manAuf der Seite wird außerdem angegeben, dass der sBefehl je nach Installation möglicherweise nicht verfügbar ist. In diesem Fall können Sie in die Zeile 1 wechseln mit:

g or < or ESC-<
      Go to line N in the file, default 1 (beginning of file).

und leite den gesamten Inhalt weiter an cat:

| <m> shell-command
      <m> represents any mark letter. Pipes a section of the input file to the
      given shell command. The section of the file to be piped is between the
      first line on the current screen and the position marked by the letter. 
      <m> may also be ^ or $ to indicate beginning or end of file respectively.

also entweder:

g|$cat > filename

oder:

<|$cat > filename

dh Typ goder <( g oder kleiner als ) | $( Pipe dann Dollar ) dann cat > filenameund Enter.
Dies sollte funktionieren, unabhängig davon, ob es sich bei der Eingabe um eine Pipe oder eine normale Datei handelt.

don_crissti
quelle
0

Ein Weg, um es ohne zu tun, teeist wie folgt.
less /path/to/input > /path/to/output
Das obige wird überschrieben, /path/to/outputwenn es bereits existiert.

Dasselbe zu tun, aber anzufügen, /path/to/outputist wie folgt.
less /path/to/input >> /path/to/output

Um den Text lessnach dem Öffnen zu speichern , können Sie die Funktion Datei speichern verwenden. Drücken Sie
im lessMenü s. Geben Sie dann den Dateinamen ein.
Wenn Sie eine Pipe verwendet haben, wird die Datei automatisch in das Arbeitsverzeichnis geschrieben.
Wenn Sie keine Pipe verwendet haben, öffnen Sie eine Datei mit dem Text (für den Sie speichern können).
Ich glaube, die Datei wird in geöffnet vim.

nehcsivart
quelle
4
Ich möchte eine Lösung, lesssobald ich bereits geöffnet habe less.
Flimm
Aha. Entschuldigung für das Missverständnis. Ich habe meine Antwort aktualisiert.
Nehcsivart
-2

Sie verwenden nicht weniger, Sie verwenden T-Stück und leiten dann T-Stück zu weniger.

./program | tee program.out | less

SailorCire
quelle
5
In der Frage, ich ausdrücklich darum gebeten , eine Lösung, die ohne arbeitete teeeinmal lesshatte bereits geöffnet worden.
Flimm