I’m facing a very strange issue. I have 2 files ber_log_before.txt and ber_log_after.txt. Their contents are
ber_log_before.txt
$ BOAR 0 BER:14 BOAR 1 BER:19 BOAR 2 BER:0 BOAR 3 BER:0 BOAR 4 BER:0 BOAR 5 BER:0 BOAR 6 BER:0 BOAR 7 BER:0 $
ber_log_after.txt
$ BOAR 0 BER:24 BOAR 1 BER:29 BOAR 2 BER:0 BOAR 3 BER:0 BOAR 4 BER:0 BOAR 5 BER:0 BOAR 6 BER:0 BOAR 7 BER:0 $
There are $ it’s normal.
Then I wrote a basic bash command to parse them
PORT="0 1"
for port in $PORT; do
VAL1=$(grep "BOAR $port" ber_log_before.txt | cut -f2 -d':')
VAL2=$(grep "BOAR $port" ber_log_after.txt | cut -f2 -d':')
echo 1st val ${VAL1} 2em val ${VAL2}
done
Why 1st val 14 2em val 24 is not echoed???
If I replace
echo 1st val ${VAL1} 2em val ${VAL2}
by
echo 1st val ${VAL1}
echo 2em val ${VAL2}
Then at least I have 2em val echoed.
I guess that awk can do the job, but that’s not the question.
Advertisement
Answer
This is not a problem actually, or it was me the problem. both files I mentioned are created from a telnet session (with expect command to be more specific). So all lines are ending with r and of course echo 1st val 14r 2em val 24r will ‘overwrite’ the first part of the echo. So I replace the r by n and then it’s ok.
To understand the problem, I copied my command into a script and use set -x. It was easy to find the r.
Sorry for that stupid question.