测试数据:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# cat appendonly.6387.aof|head -n 20 *2 $6 SELECT $1 1 *3 $3 SET $47 mission_58c7be1b47ddd5.20005951_start_wait_time $10 1489485343 *3 $3 SET $47 mission_577239de3d58a2.51913045_start_wait_time $10 1467105181 |
测试目标: 把 db 1 中的数据 导入到 db 10 里面去
awk脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
BEGIN{ll="";l="";} { if($0=="SELECT\r"){ ll="SELECT\r"; }else if(ll=="SELECT\r"){ if (l=="") { l=$0; }else { if($0 == "1\r"){ l="$2\r";$0="10\r"; } print ll; print l; print $0; ll="";l=""; } }else { print $0; } } |
测试:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# cat a.aof | awk -f /tmp/a.awk *2 $6 SELECT $2 10 *3 $3 SET $47 mission_58c7be1b47ddd5.20005951_start_wait_time $10 1489485343 *3 $3 SET $47 mission_577239de3d58a2.51913045_start_wait_time $10 1467105181 |
一般情况下,这样做事没问题的,特殊情况下会不好使(加入数据中包含极似协议的内容)