특정 명령 옵션에 대한 단락을 즉시 얻는 방법은 무엇입니까?


8

예를 들어 매뉴얼 전체를 대신 하여 맨 페이지를 통한 검색을 사용하지 않고 터미널 프롬프트에서 즉시 옵션으로 이동 apt-get하고 싶습니다 -f.



1
@미디엄. Becerra 내 질문은 더 넓습니다.
RS

@Becerra 더 넓은 질문 일뿐만 아니라 다른 질문이기도합니다. RS는 man뒤죽박죽 된 별도의 행 목록을 반환하는 대신 옵션의 전체 단락을 결과로 반환하려고하기 때문 입니다.
karel

답변:


6

에 사용되는 기본 호출기 manless입니다. 환경 변수 less를 통해 직접 이해 하는 ERE (Extended Regular Expression) 검색 패턴을 전달할 수 있습니다 LESS.이 경우 다음을 수행해야합니다.

LESS='+/-f' man apt-get

/-f작업을 수행 한 후 전달하는 것과 동일 man apt-get합니다.

이제 이것은 페이지 -f의 모든 s를 강조 표시 man하여 원하는 하나의 옵션으로 바로 이동합니다 -f.ERE를 활용하여 공백 / 탭으로 시작하는 줄만 일치시키고 다음을 수행 할 수 있습니다 -f.

LESS='+/^[[:blank:]]+-f' man apt-get

이 작업은 여기에서 수행하지만 모든 페이지에 대해 정확하지는 않지만 -f초기 공백 / 탭 이후에 시작하는 항목과 일치하므로 그러한 경우에 필요한 패턴을 약간 조정하십시오.

man자주 수행하는 경우 검색 패턴과 페이지 를 전달하여 인수로 찾을 작은 함수를 작성할 수 있습니다 .


9

검색중인 슬래시를 입력 한 다음 Enter 키를 누릅니다. 첫 번째 항목으로 이동합니다. N다음 발생 B으로 이동하고 뒤로 이동하려면 누릅니다 . 따라서이 경우

/-f <enter>

4
대시 앞에 몇 개의 공백을 추가하십시오. 대부분의 경우 옵션이 들여 쓰기되어 옵션으로 바로 이동합니다 / -f. 인라인 사용은 무시해야합니다 -f.
트랜지스터 1

1

sed옵션의 전체 단락을 하이픈으로 시작하는 데 사용하십시오 . -f단일 명령을 실행 하여 옵션 의 전체 단락을 즉시 표시하려면 다음을 사용하십시오.

man apt-get | sed -n '/-f,/,/^$/p'
   -f-,--no-f, -f=no or several other variations.

   -f, --fix-broken
       Fix; attempt to correct a system with broken dependencies in place.
       This option, when used with install/remove, can omit any packages
       to permit APT to deduce a likely solution. If packages are
       specified, these have to completely correct the problem. The option
       is sometimes necessary when running APT for the first time; APT
       itself does not allow broken package dependencies to exist on a
       system. It is possible that a system's dependency structure can be
       so corrupt as to require manual intervention (which usually means
       using dpkg --remove to eliminate some of the offending packages).
       Use of this option together with -m may produce an error in some
       situations. Configuration Item: APT::Get::Fix-Broken.  

이것은 -fman 에서 옵션에 대한 전체 단락을 반환 apt-get하지만 -f다음과 같이 더 일반적으로 유용하게 만든 후 쉼표를 제거하여 위 명령을 향상시킬 수 있습니다 .

man apt-get | sed -n '/-f/,/^$/p'

여러 단락을 반환하며 대부분 단락을 원하지 않습니다. 여러 단락의 첫 번째 줄을 읽으면 -f, --fix-broken옵션이 포함 된 단락 만 표시하려는 것을 알 수 있습니다. 다음과 같이하십시오 :

man apt-get | sed -n '/--fix-broken/,/^$/p'
   -f, --fix-broken
       Fix; attempt to correct a system with broken dependencies in place.
       This option, when used with install/remove, can omit any packages
       to permit APT to deduce a likely solution. If packages are
       specified, these have to completely correct the problem. The option
       is sometimes necessary when running APT for the first time; APT
       itself does not allow broken package dependencies to exist on a
       system. It is possible that a system's dependency structure can be
       so corrupt as to require manual intervention (which usually means
       using dpkg --remove to eliminate some of the offending packages).
       Use of this option together with -m may produce an error in some
       situations. Configuration Item: APT::Get::Fix-Broken. 

읽으려는 출력 만 반환합니다. 이 방법은 하이픈으로 시작하는 다른 옵션과 함께 작동하며 일반적으로 다른 명령에서 하이픈으로 시작하는 옵션을 검색 할 때도 작동합니다 apt-get.

sed로 추가 정보 표시

한 단락 설명이 충분한 정보를 제공하지 않으면 다음 명령은 첫 번째 단락을 이전 명령과 동일하게 표시하고 다음 단락도 표시합니다.

LESS='+/^[[:space:]]*-f' man apt-get  

이 명령의 결과는 다음 단락이 그리 흥미롭지는 않지만 일부 옵션의 경우 다음 단락도 흥미 롭다는 것을 보여줍니다. 그렇기 때문에 이것이 유용한 명령이기도합니다.

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