Sample Header Ad - 728x90

Replace a timestamp Base64 value in a file

0 votes
3 answers
320 views
I have a problem, I have a file test.txt that has a content like this: dn: serv=CSPS,mscId=167e48dc2b7a42d4acce611c8b477262,ou=multiSCs,dc=three structuralObjectClass: CP1 objectClass: CP1 objectClass: CUDBServiceAuxiliary objectClass: CP2 objectClass: CP3 objectClass: CP4 objectClass: CP5 objectClass: CP6 UNKNLOCDATECS:: FQsJ UNKNLOCDATEPS:: FgMe ISTTIMESTAMP:: FgMIDyI7 CSULTIME:: HgMWCzYo CSLOCTIME:: AQQWBA0R PSULTIME:: HgMWDBco PSLOCTIME:: HgMWDBco SCHAR:: AgA= ICS: 1 CAT: 10 DBSG: 1 OFA: 1 SOCB: 1 PWD: 0000 PWDC: 0 SOCFB: 0 Every time the text CSULTIME:: and CSLOCTIME:: are found I want to replace the value after those literals with the following funtion to decode that timestamp to a recognize format (if I can replace both values in a single scan of the file better as we are talking about 8 GB file and the function is the same in both cases): base64 -d | hexdump -v -e '1/1 "%02d" ' | awk 'BEGIN {FS = ""} {print "20" $5 $6 "-" $3 $4 "-" $1 $2 " " $7 $8 ":" $9 $10 ":" $11 $12}' If I do in unix an echo for those two values: For CSULTIME the result would be 2022-03-30 11:54:40: echo -n "HgMWCzYo" | base64 -d | hexdump -v -e '1/1 "%02d" ' | awk 'BEGIN {FS = ""} {print "20" $5 $6 "-" $3 $4 "-" $1 $2 " " $7 $8 ":" $9 $10 ":" $11 $12}' For CSLOCTIME the result would be 2022-04-01 04:13:17: echo -n "AQQWBA0R" | base64 -d | hexdump -v -e '1/1 "%02d" ' | awk 'BEGIN {FS = ""} {print "20" $5 $6 "-" $3 $4 "-" $1 $2 " " $7 $8 ":" $9 $10 ":" $11 $12}' So at the end the file would have these values for CSULTIME and CSLOCTIME: dn: serv=CSPS,mscId=167e48dc2b7a42d4acce611c8b477262,ou=multiSCs,dc=three structuralObjectClass: CP1 objectClass: CP1 objectClass: CUDBServiceAuxiliary objectClass: CP2 objectClass: CP3 objectClass: CP4 objectClass: CP5 objectClass: CP6 UNKNLOCDATECS:: FQsJ UNKNLOCDATEPS:: FgMe ISTTIMESTAMP:: FgMIDyI7 CSULTIME:: 2022-03-30 11:54:40 CSLOCTIME:: 2022-04-01 04:13:17 PSULTIME:: HgMWDBco PSLOCTIME:: HgMWDBco SCHAR:: AgA= ICS: 1 CAT: 10 DBSG: 1 OFA: 1 SOCB: 1 PWD: 0000 PWDC: 0 SOCFB: 0 I'm completely lost as all combinations I'm trying of sed I can't make them work. Thanks in advance!!!!
Asked by Sergio Jimenez (79 rep)
Apr 28, 2022, 02:17 PM
Last activity: May 2, 2022, 05:35 AM