Only for learning,bug很多
http://space.itpub.net/?uid-8242091-action-viewspace-itemid-631410
用awk处理数据文件,卸出数据块中的数据
卸出指定块的数据:./getSegData.sh [DATAFILE] [BLOCK_ID] [BLOCK_SIZE]
根据给定的段头卸出该段的数据:./UnloadDataBySegHeader.sh [DATAFILE] [BLOCK_ID] [BLOCK_SIZE]
示例:(卸出file$表的数据)
[root@zhangqiaoc odu]# ./UnloadDataBySegHeader.sh /oradata/SOURCE10/system01.dbf 113 8192
1+0 records in
1+0 records out
1+0 records in
1+0 records out
1+0 records in
1+0 records out
1+0 records in
1+0 records out
1+0 records in
1+0 records out
1+0 records in
1+0 records out
1+0 records in
1+0 records out
1+0 records in
1+0 records out
[root@zhangqiaoc odu]# cat ./data/17.txt |more
"1","2","38400","0","1","4194302","1280","0","7","","4194306"
"2","2","25600","1","2","4194302","640","0","5243","","8388610"
"3","2","15360","2","3","4194302","1280","0","5360","","12582914"
"4","2","19200","4","4","4194302","80","0","8252","","16777218"
"5","2","640","5","5","4194302","160","0","8284","","20971522"
"6","2","1280","6","6","4194176","640","0","891980","","25165826"
"7","2","640","5","7","0","0","0","2310495","","29360130"
不能处理中文,现在处理字符是通过定义的CHARR数组来进行,对字符类型的判断,也是简单的限定于单个字符的范围来处理,该处理方法是错误的
正确的处理方法应该如下,英文也是
[root@zhangqiaoc odu]# echo "206 210 49 97 101 119 195 199 176 174 196 227 108 111 118 101 50 50 50" |awk '{
> printf "%c",$1
> printf "%c",$2
> printf "%c",$3
> printf "%c",$4
> printf "%c",$5
> printf "%c",$6
> printf "%c",$7
> printf "%c",$8
> printf "%c",$9
> printf "%c",$10
> printf "%c",$11
> printf "%c",$12
> printf "%c",$13
> printf "%c",$14
> printf "%c",$15
> printf "%c",$16
> printf "%c",$17
> printf "%c",$18
> printf "%c",$19
> printf "\n"
> }'
我1aew们爱你love222
只能对普通的堆栈表,只包含数字,日期,英文字符来处理
卸出数据字典file$中无数据文件名称,自动完成卸出TRUNCATE了的数据不好弄。
写的很乱,学习目的。实际使用用熊哥的ODU很好很强大
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8242091/viewspace-631412/ ,如需转载,请注明出处,否则将追究法律责任。