최적화 된 방식으로 다음 요구 사항에 대해 이미 사용 가능한 스크립트 / 프로그램 / 유틸리티가 있습니까?
someCommand |
tee >(grep "pattern" > LinesWhichMatch) |
grep -v "pattern" > LinesWhichDoesNotMatch
답변
당신은 awk
그것을 사용할 수 있습니다 .
command | awk '{ if (/pattern/) { print > "match" } else { print > "nomatch" } }'
답변
sed
예를 들면 다음과 같습니다 .
참고 : sed의 w
명령은 스크립트가 실행될 때마다 해당 특정 쓰기 명령이 트리거 된 경우에만 기존 파일을 덮어 씁니다. 따라서rm
rm -f file-{yes,not}
sed -ne '/pattern/bY; w file-not' -e 'b; :Y; w file-yes' file
답변
awk에서 파일을 추가 할 수 있습니다.
awk '{if (/pattern/) print >>"matched"; else print >>"unmatched"; }
또는 더 짧은 :
awk '{print >>(/pattern/?"matched":"unmatched")}'