2011-10-04 2 views
0

유효한 종료 코드가 주어지면 맨 페이지의 종료 코드 섹션에서 특정 줄을 반환하고 싶습니다. 나는 스크립트 컬 실행하고 2의 종료 코드를 반환하는 경우bash를 사용하여 주어진 종료 코드의 맨 페이지에서 특정 줄을 꺼내십시오.

예를 들어, 나는 컬 사람 페이지에서 라인을 반환하고 싶습니다 :

 2  Failed to initialize. 

지금까지를 I man curl의 출력과 같이 grep으로하는 파이프 시도한 ...

는 컬 명령을 실행 한 후 $RETCODE=${?} 가정

[email protected]:~$ man curl | grep "${RETCODE}" 
    http://www.letters.com/file[a-z:2].txt 
      in the format "NAME1=VALUE1; NAME2=VALUE2". 
      out to be in text mode for win32 systems. 
      from outputting that and return error 22. 
      re-use the same IP address it already uses for the control connection. (Added in 7.14.2) 
... 
... 
,174,

하지만 숫자를 특징으로하는 다른 텍스트가 많이 있습니다. 출구 코드 섹션이 들여 쓰기되어 있다고 가정하면

[email protected]:~$ man curl | grep "  ${RETCODE}" 
     2) On windows, if there is no _curlrc file in the home dir, it 
    2  Failed to initialize. 
     227-line. 
    21  FTP quote error. A quote command returned error from the server. 
... 

그리고 우리가 가깝습니다. 내가 원했던 텍스트가 있지만 여전히 잘못된 결과를 반환합니다.

두 개 이상의 숫자가있는 종료 코드의 경우 맨 페이지의 숫자 오른쪽에있는 공백이 줄어 듭니다.

답변

1

시도 :

man curl | egrep " {7}${RETCODE} +\S+" 
+0

고마워. 이걸 시도해 보니 매력이있다. –

2

이 시도 :

man curl | grep -E "^\s+${RETCODE}\s+" 
+0

좋은 찾고, 그것은'자신의 첫 번째 자리로'$ {RETCODE를}이 종료 코드를 반환하지만. E.G., 23 for 2. –

+1

@lonis : 지금 시도하십시오. –

+1

그게 하나야! 건배, 존. 누군가가 당신 앞에 있기는하지만. ( –

2
 

$ man curl | sed -n -e '/^E..X..I..T/,/^A..U..T..H/!d' -e '/ 2 /p' 
관련 문제