2012-12-21 5 views
1

실행시 여러 줄을 stout에 인쇄하는 경우 어떻게하면 모든 줄을 sed으로 리디렉션하고 생성되는 동안 일부 작업을 수행 할 수 있습니까? 예를 들어sed에 여러 개의 출력 보내기

는 :

7zip a -t7z output_folder input_folder -mx9 > sed 's/.*[ \t][ \t]*\([0-9][0-9]*\)%.*/\1/' 

7zip과 각각 백분율 값을 포함하여, 출력으로서 일련의 선을 생성하고, I는 생성되는 동안, 오직 이러한 값을 표시 sed 싶습니다. 위의 스크립트는 불행히도 작동하지 않습니다 ...

이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

+0

'sed' 파일로 리디렉션하는 대신'|'를 사용하여 파이프해야합니다. 또한'grep '을 사용해보십시오. – khachik

+0

grep은 몇 가지 이점을 제공합니까? – user1301428

+0

그냥 재사용을 단순화하는 데 도움이 될 수 있습니다. 원하는 것을 grep하여 결과 만 표시 할 수 있습니다. – khachik

답변

2

리디렉션 > 대신 파이프 |을 사용해야하므로 sed은 첫 번째 명령 출력을 입력으로 사용합니다.

위의 스크립트 행은 현재 디렉토리에 sed 파일을 작성 했어야합니다.

또한 아마 7zipstderr 대신 stdout 이러한 라인을 출력한다. 그럴 경우 먼저 파이핑하기 전에 표준 오류를 표준 출력으로 리디렉션하십시오. 2>&1 |

관련 문제