Tie subory druhykrat publikuj radsej v textovej forme - je otrocke vytvarat subor podla obrazku
Na take veci je najlepsie pouzit AWK.
mame teda subor Main.txt
TEST1=0
TEST2=(A=-0,B=-0)
TEST3=0x000000
TEST4=(A=0,B=0,CC=0,DD=0,VV=0,RRRR=0.0)
TEST5=0.0
a 3 dalsie subory:
ABC1.txt
TEST1=0
TEST2=(A=-0,B=-0)
TEST3=0x000000
TEST4=(A=0,B=0,CC=0,DD=0,VV=0,RRRR=0.0)
TEST5=0.0
ABC2.txt
TEST1=0
TEST3=0x000000
TEST5=0.0
TEST4=(A=0,B=0,CC=0,DD=0,VV=0,RRRR=0.0)
TEST2=(A=-0,B=-0)
ABC3.txt
TEST1=0
TEST2=(A=-0,B=-0)
TEST3=0x000000
TEST4X=(A=0,B=0,CC=0,DD=0,VV=0,RRRR=0.0)
TEST5X=0.0
k tomu tento awk-skript
# Run:
# awk -f OKTeA.awk Main.txt ABC.txt
BEGIN {
FS = "=="
}
{
if (FILENAME == ARGV[1]) {
# mark values from file Main.txt into array
sub(/=/,"==",$0) # replace first '=' with '=='
gsub(/"/,"",$0) # sweep out all '"'
test_array[$1] = $2
#print $1 "--> " test_array[$1]
}
if (FILENAME == ARGV[2]) {
# print adequate lines from file ABC.txt
sub(/=/,"==", $0) # replace first '=' with '=='
if (test_array[$1]) {
print $1 "=" test_array[$1]
}
}
}
Ked to spusts dostanes co si chcel
$ awk -f OKTeA.awk Main.txt ABC1.txt
TEST1=1
TEST2=(A=-1,B=-1)
TEST3=1x111111
TEST4=(A=1,B=1,CC=1,DD=1,VV=1,RRRR=1.1)
TEST5=1.1
$ awk -f OKTeA.awk Main.txt ABC2.txt
TEST1=1
TEST3=1x111111
TEST5=1.1
TEST4=(A=1,B=1,CC=1,DD=1,VV=1,RRRR=1.1)
TEST2=(A=-1,B=-1)
$ awk -f OKTeA.awk Main.txt ABC3.txt
TEST1=1
TEST2=(A=-1,B=-1)
TEST3=1x111111