2012-08-21 5 views
2

일부 파일이 없어서 실패한 스크립트가 있습니다. 내가 루트 파일을 추출하고 싶습니다 다른 파일grep을 사용하여 파이프 오류 메시지

Error in <TFile::ReadBuffer>: error reading all requested bytes from file v2.2_V3_194424_194712/output_853.root, got 0 of 300 
Error in <TFile::Init>: v2.2_V3_194424_194712/output_853.root not a ROOT file 

과 유사한 출력 :

스크립트를 실행하고

$ ./adder | grep Error 

을 grep을 할 배관은 다음과 같은 출력을 생성 이 출력에서 ​​v2.2_V3_194424_194712/output_853.root과 같이 ./adder | grep Error | grep .root을 수행하는 이 작동하지 않습니다.

왜 그럴까요? 표준 출력 스트림에 파이프에서 첫 번째 명령 (숫자 코드 : 1)에서,이 같은 : piokuc의 알

$ ./adder 2>&1 | grep Error 

답변

2

처럼, 표준 에러를 결합 :

5

당신은 표준 오류 스트림 (2 숫자 코드)를 리디렉션합니다 stdout. 그러나, 당신은 grep의 더 나은 호출을 찾고 있다고 생각 :

./adder 2>&1 | grep "^Error" | grep -oP '[^ ]*\.root'