2017-05-23 4 views
-1

ich eine Protokolldatei in einer Schleife durch diese Datei colors.cfgWie jedes Komma mit einem neuen Wort aus einer Datei

\033[0;31 
\033[0;32 
\033[0;33 
\033[0;34 
\033[0;35 
\033[0;36 
\033[0;37 

und ersetzen jeden

[java] 08 May 2017 21:17:37,508 INFO FoobarTests.testSomething.95e0dc44-c51e-4b2f-a048-eba70eae6d94-60e04794-2fe8-42c6-b8a3-5ea180a20431 aaaa.aaa.test.:170 - Creating account: [email protected][name=<null>,aaaa=33,bbb=<null>,ccc=<null>,ddd=<null>,xxx=XY,eeee=eee,fff=fff,port=8200, 

[java] 08 May 2017 21:17:40,527 INFO FoobarTests.testSomething.95e0dc44-c51e-4b2f-a048-eba70eae6d94-60e04794-2fe8-42c6-b8a3-5ea180a20431 aaa.bbb.test.runner.ClientFactory:400 - Building a client for customer[123] using url-info[[email protected][envn=aaa,endPoint=<null>]]. 

Ich möchte samplelog.log haben ersetzen Komma in der Logdatei mit "einem Komma und einer Zeile aus der color.cfg". Eine andere Zeile wird jedes Mal gelesen.

Ich möchte dies verwenden, um Text nach jedem Komma in der Protokolldatei eine andere Farbe zu geben.

so bekomme ich so in einer neuen Datei ausgegeben.

[java] 08 May 2017 21:17:37,508 INFO FoobarTests.testSomething.95e0dc44-c51e-4b2f-a048-eba70eae6d94-60e04794-2fe8-42c6-b8a3-5ea180a20431 aaaa.aaa.test.:170 - Creating account: [email protected][name=<null>,\033[0;31aaaa=33,\033[0;37bbb=<null>,\033[0;36ccc=<null>,\033[0;35ddd=<null>,\033[0;34xxx=XY,\033[0;33eeee=eee,\033[0;32fff=fff,\033[0;31port=8200, 

Antwort

1
COLORS=() 
while read -r line; do 
    COLORS+=("${line}") 
done </path/to/colors_file/colors_file.txt 

IFS=',' 

while read -r logLine; do 
    logLineParsed='' 
    clrsIndx=0 

    for linePart in ${logLine}; do 
    if [ "${clrsIndx}" -eq "${#COLORS[@]}" ]; then 
     clrsIndx=0 
    fi 

    logLineParsed+="${linePart},${COLORS[${clrsIndx}]}" 
    ((clrsIndx++)) 
    done 

    printf '%s\n\n' "${logLineParsed}" >> new_log_file.txt 
done </path/to/log_file/log_file.txt 

Ausgang:

[java] 08 May 2017 21:17:37,\033[0;31508 INFO FoobarTests.testSomething.95e0dc44-c51e-4b2f-a048-eba70eae6d94-60e04794-2fe8-42c6-b8a3-5ea180a20431 aaaa.aaa.test.:170 - Creating account: [email protected][name=<null>,\033[0;32aaaa=33,\033[0;33bbb=<null>,\033[0;34ccc=<null>,\033[0;35ddd=<null>,\033[0;36xxx=XY,\033[0;31eeee=eee,\033[0;32fff=fff,\033[0;33port=8200,\033[0;34 

[java] 08 May 2017 21:17:40,\033[0;31527 INFO FoobarTests.testSomething.95e0dc44-c51e-4b2f-a048-eba70eae6d94-60e04794-2fe8-42c6-b8a3-5ea180a20431 aaa.bbb.test.runner.ClientFactory:400 - Building a client for customer[123] using url-info[[email protected][envn=aaa,\033[0;32endPoint=<null>]].,\033[0;33 
+0

Wenn das funktioniert für Sie es bitte als eine akzeptable Antwort markieren. – jiveturkey

+0

Danke @ Ajb27 funktioniert perfekt. –

Verwandte Themen