Comment écrire toutes les lignes de moins dans un fichier?


76

J'ai transmis une commande à less, et maintenant je veux enregistrer le résultat de la commande dans un fichier. Comment je fais ça?

Dans ce cas, je ne veux pas utiliser tee, je veux une solution directement de less, de sorte que je n'ai pas à réexécuter une commande de longue durée si j'ai oublié de l'utiliser tee.

Cette question est similaire à celle-ci, la seule différence est que je veux sauvegarder toutes les lignes, pas un sous-ensemble: écrire des lignes dans un fichier à partir de moins

Réponses:


106

De less, tapez spuis tapez le nom du fichier que vous souhaitez enregistrer, puis Enter.
De la manpage, sous COMMANDS:

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

manLa page indique également que, selon votre installation, la scommande peut ne pas être disponible. Dans ce cas, vous pouvez aller à la ligne 1 avec:

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

et dirigez tout le contenu catavec:

| <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.

alors soit:

g|$cat > filename

ou:

<|$cat > filename

c'est-à-dire tapez gou <( g ou moins que ) | $( pipe puis dollar ) puis cat > filenameet Enter.
Cela devrait fonctionner si l'entrée est un canal ou un fichier ordinaire.


0

Une façon de le faire sans teeest la suivante.
less /path/to/input > /path/to/output
Ce qui précède écrasera /path/to/outputs’il existe déjà.

Pour faire la même chose, mais ajouter à /path/to/outputest comme suit.
less /path/to/input >> /path/to/output

Pour enregistrer le texte lessaprès l'avoir ouvert, vous pouvez utiliser la fonctionnalité Enregistrer le fichier.
Lorsque vous y êtes less, appuyez sur s. Ensuite, tapez le nom du fichier.
Si vous avez utilisé un canal, le fichier sera automatiquement écrit dans le répertoire de travail.
Si vous n'avez pas utilisé de pipe, vous allez ouvrir un fichier avec le texte (pour lequel vous pouvez sauvegarder).
Je crois que le fichier sera ouvert dans vim.


4
Je veux une solution à partir d' lessune fois que j'ai déjà ouvert less.
Flimm

Je vois. Désolé pour le malentendu. J'ai mis à jour ma réponse.
Nehcsivart

-2

Vous n'en utilisez pas moins, vous utilisez un té, puis un tuyau en té pour moins.

./program | tee program.out | less


5
Dans la question, j'ai demandé spécifiquement pour une solution qui a fonctionné sans teeune fois lessavait déjà été ouverte.
Flimm
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.