QUOTE:$ cat file1
test_1111:GTcGA9EYxnlbU
test_432432432:GTcGA9EYxnlbU
pay_:AtrwCbyNn8ZvI
$
$ cat file2
#Pay users
pay_123:6ULq2ZLY/e0s
pay_222:pXgLR05wNfV6
#Test users
test_1111:GTcGA9EYxnlbU
test_222:AtrwCbyNn8ZvI
$
$ cat file3
pay_group:1:default,pay_111,pay_111e,pay_222,pay_333
test_group:1,default,test_111,test_222
awk -F ':' 'BEGIN{
while (getline) {
if (FILENAME=="file1") {
if ($1 ~ /test/) { test[++t]=$0; continue;}
else if ($1 ~ /pay/) { pay[++p]=$0; continue;}
}
if ($0 ~ /Pay users/) {pb=1;tb=0;print;continue}
if ($0 ~ /Test users/) {tb=1;pb=0;print;continue}
if (pb && $0 ~ /^ *$/) {
for (i in pay) print pay;
}
if (tb && (FILENAME == "file3" || $0 ~ /^ *$/)) {
for (i in test) print test;
}
if (FILENAME == "file3") {
pb=tb=0;
if ($1 ~ /pay_group/) {
printf $0 > "new_file3";
for (i in pay) printf ","pay > "new_file3";
printf "\n" > "new_file3";
}
else if ($1 ~ /test_group/ ) {
printf $0> "new_file3";
for (i in test) printf ","test > "new_file3";
printf "\n" > "new_file3";
}
continue;
}
print;
}
}' file1 file2 file3 >new_file2
复制代码
QUOTE:$ cat new_file2
#Pay users
pay_123:6ULq2ZLY/e0s
pay_222:pXgLR05wNfV6
pay_:AtrwCbyNn8ZvI
#Test users
test_1111:GTcGA9EYxnlbU
test_222:AtrwCbyNn8ZvI
test_1111:GTcGA9EYxnlbU
test_432432432:GTcGA9EYxnlbU
$
$ cat new_file3
pay_group:1:default,pay_111,pay_111e,pay_222,pay_333,pay_:AtrwCbyNn8ZvI
test_group:1,default,test_111,test_222,test_1111:GTcGA9EYxnlbU,test_432432432:GTcGA9EYxnlbU