2011-03-19 6 views
0

오류 및 로그 메시지를 동일한 파일로 보내려는 상황이 있습니다. 나는이 같은 로그 메시지를 추가하고 메시지를 오류를 구분하고 로그인하려면 :비행 중 오류 및 로그 메시지 수정

파일은 다음과 같습니다

===============log_and_error_msg.txt ========= 
ERR: This message is an error message 
INF: This is a log message 

때문에 오류 메시지에 관심있는 사람이

grep "ERR" log_and_error_msg.txt은 내가 가정 할 수 이 같은 쉘 스크립트를 실행하십시오.

./shellscript 2>>log_and_error_msg.txt 1>>log_and_error_msg.txt 

ERR 및 INF를 어떻게 추가할까요?

답변

1

sed를 사용할 수 있습니다. ERR: 또는 INF:와 TYPE 교체, 각각의 파이프 라인에서 sed 's/^/TYPE /'를 삽입

0

stderr을 임시 파일로 리디렉션 해보십시오.

./testscript.sh 2> err.tmp | (while read line ; do echo 'INFO: ' $line ; done) ; (while read line ; do echo 'ERR: ' $line ; done) <err.tmp 
2
#!/bin/bash 
exec 3> >(sed 's/^/INF: /' >> prepend.log) 
exec 4> >(sed 's/^/ERR: /' >> prepend.log) 
echo "some information" >&3 
echo "an error" >&4 
echo "more information" >&3 
echo "this goes to the screen" 
echo "this goes to stderr, bypassing the log" >&2 
echo "another error" >&4 
echo "yet more information" >&3 
echo "still information" >&3 
echo "oops" >&4 
+1

exec' 리디렉션 및 프로세스 대체'의 한 좋은 데모 –

0
 
{ { ./shellscript | sed 's/^/INF: /'; } 2>&1 1>&3 | sed 's/^/ERR: /'; } \ 
>> log_and_error_message.txt 3>&1