매뉴얼 페이지를 덤프하는 방법?


45

내용의 덤프를 얻기 위해 파일을 'cat'하는 것처럼 맨 페이지를 'cat'하는 방법은 무엇입니까?

답변:


40

우선, man 파일은 보통 파일 시스템 어딘가에 gzip으로 압축 된 텍스트 파일입니다. 당신의 마일리지는 그것들을 찾는 것에 따라 다양 할 것이므로 아마도 소스 대신에 사람이 제공하는 처리되고 포맷 된 버전을 원했을 것입니다. man도구로 덤프 할 수 있습니다 . 를 보면 다음 man man과 같이 -P플래그 가있는 매뉴얼 페이지를 보는 데 사용되는 프로그램을 변경할 수 있습니다 .

man -P cat command_name

또한 man화면에서 보는 대신 출력 할 때 파이프를 감지 할 때 자동으로 감지 할 가치가 없으므로 다른 것으로 처리하려는 경우 다음과 같이 해당 단계로 바로 건너 뛸 수 있습니다.

man command_name | grep search_string

또는 파일로 덤프하려면 :

man command_name > formatted_man_page.txt

1
-P를 사용하면 출력 파일을 깔끔하게 읽을 수 없습니다. 모든 ctrl-H 문자가 적혀 있습니다. 나는 man cmd>! man.cmd를 열고 man.cmd를 열고 '% s / ^ H .// g'를 수행하여 굵게 및 기울임 꼴을 나타내는 성가신 제어 문자를 제거하십시오. 그러나 다른 특수 문자가있을 때 여전히 문제가 있습니다. 나는 여전히 출력을 수동으로 편집하지 않는 좋은 방법을 찾고 있습니다.
Chan Kim

@ChanKim 여기에있는 두 가지 방법 모두 실제로 추가 제어 문자없이 일반 텍스트 형식의 깨끗한 출력을 생성하기 때문에 무언가 잘못되었거나 표준이 아닌 구성이 방해를받습니다. man쉘의 정상적인 기능과 분리되는 쉘에서 강제로 실행되는 무언가 또는 플래그에 별명을 지정 하지 않았 man습니까?
Caleb

1
@Caleb, OP의 문제를 확인했습니다. CentOS 릴리스 6.7 (최종), / usr / bin / man gcc> j, 'j'를 편집하면 모든 ctrl-H가 있습니다. 내가 찾은 가장 좋은 대답은 commandlinefu.com/commands/view/2417/에 있습니다.
Charles Roth

1
man command_name > formatted_man_page.txt일부 단어가 중복됩니다.
Zigii Wong

52

성가신 백 스페이스 / 밑줄 없이 밑줄을 긋지 않고 굵게 표시 할 이상한 시퀀스 없이 ASCII 매뉴얼 페이지 파일을 얻으려면 :

man ksh | col -b > ksh.txt

6
당신은 더 많은 투표를 할 가치가 있습니다
Labo

2
안녕, 왜 남자 파이프 출력에 중복 문자가 포함되어 있습니까? col -b는 어떻게 제거 했습니까? 미리 감사드립니다.
saurabheights

2
@saurabheights-man은 밑줄과 굵은 텍스트 및 백 스페이스, 중복 문자, 이스케이프 시퀀스 등을 포함한 다른 작업을 시도합니다. 도트 출력이나 도트 프린터로 사람 출력을 인쇄하거나 표시하면 작동 할 수있는 트릭 터미널에서 텍스트로. col 소스를 읽지 못했지만 stdin을 바이트 단위로 검사하고 백 스페이스 등을 stdout에 전달하지 않습니다. col의 맨 페이지는 누군가가 맨 출력을 필터링하기 위해 특별히 쓴 것처럼 읽습니다.
Bruce Ediger

1
알겠습니다. 이러한 문자 (숨김)로 인해 중복 문자가 발생할 수 있습니다. 브루스 감사합니다.
saurabheights

당신은 정말로 모드 공감이 필요합니다. 열에 "콜"합니까?
대수

24

매뉴얼 페이지는 일반적으로 troff사전 처리 된 파일이며 다음을 사용하여 일반 텍스트를 얻을 수 있습니다.

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

groff의 래퍼입니다 troff.

자세한 내용은 여기를 참조하십시오 .

맨 페이지 파일을 먼저 압축 해제하기 위해 gzip을 사용해야 할 수도 있으며, 결과물에 여전히 많은 형식 정보가 있습니다.


4
groff / troff와 매뉴얼 페이지의 형식에 대해 이야기 +1
lgeorget

11

나는 항상 이것을한다. 이 명령 줄은 나를 행복하게 만듭니다.

man man | col -bx > man.txt

col -b는 백 스페이스를 제거합니다.

col -bx는 탭을 공백으로 바꿉니다.

읽는 동안 텍스트를 원하는 너비로 포맷하려면 명령을 다음과 같이 변경하십시오.

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

man man | col -bx > man.txt나를 위해 일했다. 감사합니다.
JaredH

6

man명령을 사용하기 만하면 cat파일 과 마찬가지로 출력을 다른 것으로 파이프 할 수 있습니다 .


1
나는 단순함을 좋아한다.
Joel Sjögren

3

cat맨 페이지로 보내려면 간단히 다음 페이지로 파이프하면됩니다 cat.

man ls | cat

내용을 파일로 덤프하려는 경우 :

man ls > ls_manpage_dump.txt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.