web-dev-qa-db-fra.com

Comment puis-je enregistrer le contenu actuel de moins dans un fichier?

Si j'ai acheminé les résultats d'une commande vers less et que j'ai ensuite décidé de sauvegarder le contenu dans un fichier, est-ce possible?

J'ai essayé de définir une marque a à la fin du tampon, puis de revenir au début et d'utiliser |avi pour envoyer tout le contenu à vi, mais cela ne fonctionne pas.

87
Jonathan Day

man less dit sur mon système

 s nomfichier 
 Enregistrez l'entrée dans un fichier. Cela ne fonctionne que si l'entrée est un 
 Canal, pas un fichier ordinaire. 

Travaille pour moi!

100
RedGrittyBrick

La réponse acceptée ne fonctionne pas sur le Mac - comme @benroth le dit, si vous appuyez sur s, vous déplacez simplement une ligne - mais vous pouvez utiliser une méthode différente.

Dans less --help:

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

et

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

Donc, si vous allez en haut de la mémoire tampon (<) puis:

|$cat > /tmp/foo.txt

le contenu du tampon sera écrit dans /tmp/foo.txt.

23
Joe Shaw

Lorsque votre less est ouvert, vous pouvez enregistrer la sortie complète dans un fichier. Comme vim, less prend en charge les commandes.

Tapez simplement la clé s, puis less vous demandera le nom du fichier où vous souhaitez enregistrer le contenu, tapez simplement le nom du fichier puis tapez Enter.

À votre santé

3
Magnos Hammes

Ma réponse arrive un peu trop tard, je crois. Mais juste pour référence, en réponse à la préoccupation de benroth ci-dessus: Pour les utilisateurs d’OSX, il est toujours possible de vider le contenu du pager dans un fichier journal en utilisant l’option "-l" (read DASH ELL ) à l’invite du colon.

Le téléavertisseur demandera un fichier journal. Saisissez-le et appuyez sur [CR]

0
superk

Utilisez l'opérateur >. Par exemple: less foo.bar > output.txt.

0
Dror