Code:
awk ' ( NF == 5 ) && ( /^\./ ) { gsub(/[0-1][0-9][0-3][0-9][0-9][0-9][0-2][0-9][E][DS][T]/, dateblock synoptime tz, $4) ; print } 1' dateblock=$(date +%m%d%y) tz=$(date +%Z) synoptime=$synoptime modtest > modtest2
awk ' (( NF == 4 ) && ( /^\./ )) && ( $4 !~ /^[0-9]/ ) { gsub(/[0-1][0-9][0-3][0-9][0-9][0-9][0-2][0-9][E][DS][T]/, dateblock synoptime tz, $3) ; print } 1' dateblock=$(date +%m%d%y) tz=$(date +%Z) synoptime=$synoptime modtest >> modtest2
awk ' (( NF == 4 ) && ( /^\./ )) && ( $4 ~ /^[0-9]/ ) { gsub(/[0-1][0-9][0-3][0-9][0-9][0-9][0-2][0-9][E][DS][T]/, dateblock synoptime tz, $4) ; print } 1' dateblock=$(date +%m%d%y) tz=$(date +%Z) synoptime=$synoptime modtest >> modtest2
awk ' (( NF == 3 ) && ( /^\.T/ )) && ( $3 ~ /^[0-9]/ ) { gsub(/[0-1][0-9][0-3][0-9][0-9][0-9][0-2][0-9][E][DS][T]/, dateblock synoptime tz, $3) ; print } 1' dateblock=$dateblock tz=$tz synoptime=$synoptime modtest >> modtest2
I have also tried it as one big awk block, but so far it's only outputting the last line of the modtest file:
(synoptime, dateblock, tz defined earlier in script)
Code:
awk 'BEGIN {dateblock=$dateblock; tz=$tz; synoptime=$synoptime}
{
if (( NF == 5 ) && ( /^\./ ))
{ gsub(/[0-1][0-9][0-3][0-9][0-9][0-9][0-2][0-9][E][DS][T]/, dateblock synoptime tz, $4) }
if ((( NF == 4 ) && ( /^\./ )) && ( $4 !~ /^[0-9]/ ))
{ gsub(/[0-1][0-9][0-3][0-9][0-9][0-9][0-2][0-9][E][DS][T]/, dateblock synoptime tz, $3) }
if ((( NF == 4 ) && ( /^\./ )) && ( $4 ~ /^[0-9]/ ))
{ gsub(/[0-1][0-9][0-3][0-9][0-9][0-9][0-2][0-9][E][DS][T]/, dateblock synoptime tz, $4) }
if ((( NF == 3 ) && ( /^\.T/ )) && ( $3 ~ /^[0-9]/ ))
{ gsub(/[0-1][0-9][0-3][0-9][0-9][0-9][0-2][0-9][E][DS][T]/, dateblock synoptime tz, $3) }
}
END { print } ' modtest
|