2014-06-14 3 views
0

나는 그램 삭스를 사용하여 시뮬레이션을하고 있습니다. g_polystat 도구를 사용하면 다음 절차가 수행됩니다.프로그램의 출력 목록에서 단어 찾기

g_polystat 

프로그램은 선택의 목록을 반환

Select a group of polymer mainchain atoms: 
Group  0 (  System) has 2669 elements 
Group  1 (   Other) has 23 elements 
Group  2 (   LnrB) has  5 elements 
Group  3 (   Lnr) has 14 elements 
Group  4 (   LnrE) has  4 elements 
Group  5 (   Water) has 2646 elements 
Group  6 (   SOL) has 2646 elements 
Group  7 (  non-Water) has 23 elements 
Select a group: 

프로그램은 원하는 그룹을 선택하고 ENTER로 확인을 요청합니다. 하나의 그룹이 원하는 경우

이 절차는 자동화 :

echo 2 | g_polystat 

가 일부 UNIX 명령을 사용하여 단어를 위의 출력 목록을 검색 한 다음 원하는 그룹을 선택하는 것이 가능하다.

예를 들어

  1. 원하는 단어를 찾을 물 말할 수 있습니다. grep과 같은 것이 그 일을 할 것입니다.
  2. 이것이 속한 그룹의 번호를 찾으십시오. 이 경우 그 그룹 5
  3. 다음과 같이 쓰십시오.

    echo 5 |

    g_polystat

는 당신에게 감사

+0

아마도'expect'가 도움이 될 수 있습니다. https://en.wikipedia.org/wiki/Expect – Cyrus

답변

0

음, 어디 ...

그냥

을이없는 것인가?

sed -rn "s/Group[ ]*([0-9]*)[ ]*\([ ]*$1\)[ ]*has[ ]*[0-9]* elements/\1/gp" < /dev/stdin | { 
    read num; 
    echo $num; 
    echo $num | g_polystat; 
} 

당신은 분명히 일부 널 (null)가 필요합니다

#### answer.sh 
#!/bin/sh 

sed -rn "s/Group[ ]*([0-9]*)[ ]*\([ ]*$1\)[ ]*has[ ]*[0-9]* elements/\1/gp" < /dev/stdin 

그런 다음

5 

그래서 그냥 이런 식으로 코드를 편집 할 수 있도록

./answer.sh Water < tableFile 

인쇄처럼 실행 파이프 응용 프로그램에서 검사하지만, 내게있어