비 기술적 인 청중을위한 프레젠테이션을하고 있습니다. bash에서 실행중인 프로그램이있어 연속적인 값 스트림을 출력하며 그중 일부가 중요합니다. 관객이 자신의 빈도를 알 수 있도록 표시되는 중요한 결과를 강조하고 싶습니다. 문제는 sed
실행중인 스트림에서 작동 할 수 없다는 것 입니다. 다음과 같이 결과를 파일에 넣으면 정상적으로 작동합니다.
cat output.txt | sed "s/some text/some text bolded/"
그러나 다음과 같이 실행중인 출력에서 같은 것을 시도하면 :
command | sed "s/some text/some text bolded/"
sed
아무것도하지 않습니다. 이견있는 사람?
Lambert가 지적하기에 충분히 도움이 되었기 때문에 sed
아무 말도하지 않는 내 말 은 모호했습니다. 어떤 일이 일어나고은에 프로그램 출력이다 stdout
(나는 확신이에 작성하지 않을거야 stderr
)는 평소처럼, 그것은의를 통해 파이프하더라도 sed
.
문제는 명령이 두 번째 프로그램을 호출하여 stdout으로 출력하는 것 같습니다. 첫 번째 프로그램이 인쇄 한 줄이 몇 개 있습니다. 이것들은 편집 할 수 있습니다. 그런 다음 두 번째 프로그램에 의해 인쇄 된 일련의 값이 있습니다. 이것들은 편집 할 수 없습니다.
Perl 및 awk 메소드는 작동하지 않습니다.
command|egrep 'some text|$'
g
"글로벌"대체를 추가해야합니다. 그렇지 않으면 행에서 처음 나타나는 것만 대체됩니다.sed "s/old/new/g"
stdbuf -o0 command | sed "s/some text/some text bolded/"
작업?