Come scaricare una pagina man?


46

Come posso "cat" una pagina man come farei "cat" un file per ottenere solo un dump del contenuto?

Risposte:


41

Prima di tutto, i file man sono in genere solo file di testo decompressi da qualche parte nel tuo file system. Dal momento che il tuo chilometraggio varierà trovandoli e probabilmente volevi la versione elaborata e formattata che man ti offre invece della fonte, puoi semplicemente scaricarli con lo manstrumento. Guardando man man, vedo che puoi cambiare il programma usato per visualizzare le pagine man con la -Pbandiera in questo modo:

man -P cat command_name

Inoltre, non vale nulla che manrilevi automaticamente quando si esegue il pipe dell'output anziché visualizzarlo sullo schermo, quindi se si intende elaborarlo con qualcos'altro, è possibile saltare direttamente a quel passaggio in questo modo:

man command_name | grep search_string

o per scaricare in un file:

man command_name > formatted_man_page.txt

1
l'uso di -P non rende il file di output perfettamente leggibile. È scarabocchiato con tutti i caratteri ctrl-H. Ero solito fare man cmd>! man.cmd e apri man.cmd e fai '% s / ^ H .// g' per rimuovere i fastidiosi caratteri di controllo per rappresentare grassetto e corsivo. Ma questo ha ancora qualche problema quando ci sono altri personaggi speciali. Sto ancora cercando un buon metodo per evitare la modifica manuale dell'output.
Chan Kim,

@ChanKim Stai facendo qualcosa di sbagliato o hai una configurazione non standard che ti ostacola perché entrambi i metodi qui in effetti producono un output pulito formattato in testo semplice senza caratteri di controllo extra. Sei sicuro di non avere manaliasing di qualcosa o flag forzati nella tua shell che ti stanno separando dalla normale funzione di man?
Caleb,

1
@Caleb, confermo il problema di OP. CentOS versione 6.7 (Final), / usr / bin / man gcc> j, modifica 'j', tutti i ctrl-H sono lì. La migliore risposta che ho trovato è su commandlinefu.com/commands/view/2417/…
Charles Roth,

1
man command_name > formatted_man_page.txtfarà duplicare qualche parola.
Zigii Wong,

52

Per ottenere un file della pagina man ASCII, senza i fastidiosi tentativi di sottolineatura di backspace / sottolineature e strane sequenze in grassetto:

man ksh | col -b > ksh.txt

6
Ti meriti altri voti
Labo,

2
Ciao, perché l'output di piping dell'uomo contiene caratteri duplicati? e come ha fatto col -b a rimuovere il suo? Grazie in anticipo.
saurabheights,

2
@saurabheights - man cerca di sottolineare e scrivere in grassetto e forse altre cose con backspaces, caratteri duplicati, sequenze di escape, ecc. Trucchi che potrebbero funzionare se si stampa l'output man su una matrice di punti o su un'altra stampante o se lo si mostra come testo su un terminale. Non ho letto col source, ma probabilmente esamina solo lo stdin byte per byte e non passa backspaces, ecc. A stdout. La pagina man di col si legge come se qualcuno l'avesse scritta appositamente per filtrare l'output man.
Bruce Ediger,

1
ok, ha senso. Tali caratteri (nascosti) potrebbero causare i caratteri duplicati. Grazie Bruce.
saurabheights,

Meriti davvero i voti in modalità. "Col" per colonna?
Algebra,

24

Le pagine man sono in genere trofffile preelaborati e puoi arrivare al testo semplice con,

groff -t -e -mandoc -Tascii manpage.1 | col -bx > manpage.txt

groffè un wrapper per troff.

Maggiori informazioni qui .

Potrebbe essere necessario utilizzare gzip per decomprimere prima i file della pagina man e avrete comunque molte informazioni di formattazione nell'output.


4
+1 per parlare di groff / troff e della formattazione delle pagine man
lgeorget,

11

Lo faccio sempre. Questa riga di comando mi rende felice:

man man | col -bx > man.txt

col -b rimuove i backspaces.

col -bx sostituisce anche le schede con spazi che è la mia preferenza forte.

Se voglio che il testo sia formattato secondo una larghezza delle mie preferenze durante la lettura, cambio il comando in questo modo:

MANWIDTH=10000 man man | col -bx > man.txt

man man | col -bx > man.txtha funzionato per me. Grazie.
JaredH,

6

Usa semplicemente il mancomando: puoi reindirizzare l'output in altre cose proprio come con catun file.


1
Mi piace la semplicità.
Joel Sjögren,

3

Se vuoi solo catuna manpage, puoi semplicemente reindirizzarla a cat:

man ls | cat

Se vuoi scaricare il suo contenuto in un file:

man ls > ls_manpage_dump.txt
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.