iis服务器助手广告
返回顶部
首页 > 资讯 > 数据库 >[20210930]bbed读取数据块7 fffext.sh.txt
  • 351
分享到

[20210930]bbed读取数据块7 fffext.sh.txt

[20210930]bbed读取数据块7fffext.sh.txt 2014-07-25 06:07:22 351人浏览 无得
摘要

[20210930]bbed读取数据块7 fffext.sh.txt--//一般bash shell脚本很少考虑执行效率,仅仅考虑利用它快速解决工作中遇到的问题.--//以前写的bbed读取数据块的脚本调用bbed次数太多,尝试改进脚本,

[20210930]bbed读取数据块7 fffext.sh.txt

[20210930]bbed读取数据块7 fffext.sh.txt

--//一般bash shell脚本很少考虑执行效率,仅仅考虑利用它快速解决工作中遇到的问题.
--//以前写的bbed读取数据块的脚本调用bbed次数太多,尝试改进脚本,减少bbed的调用次数.

$ cat -v fffext.sh
#! /bin/bash -x
# argv1=file_number argv2=begin_block argvs3=end_block argv4=data_object_id argv5=bbed /x fORMat
#set -x
file_number=$1
begin_block=$2
end_block=$3
data_object_id=$4
ff="/r"${5}

# create sed script.
a=$5
len=$( echo ${#a} )
seq $len | xargs -IQ expr substr $a Q 1 | grep -n "[nt]" | sed  "s+:.$+s/ $//+" >| ff.sed
echo "s+^*NULL*$++g" >> ff.sed

# scan begin_block to end_block,define search scope.
/bin/rm scan1.txt 2>/dev/null
seq  -f "%-1.0f" $begin_block $end_block | xargs -IQ echo -e "host echo $file_number,Q p /d dba $file_number,Q ktbbh.ktbbhsid.ktbbhod1" |
rlbbed | grep "^BBED" | egrep "$file_number,|ub4 ktbbhod1" | awk "{print $NF}" | paste -d" " - - | awk -v a=$data_object_id "$2==a {print $1}" >| scan1.txt

# scan2 kdbr and display record.
cat scan1.txt |while read dba
do
    #echo $dba
    kdbr_size=$(echo p dba $dba kdbt[0].kdbtnrow | rlbbed| grep kdbtnrow | awk "{print $NF}")
    #echo $kdbr_size

    begin=0
    end=$[ kdbr_size -1 ]
    #echo $begin $end

    #echo set dba $dba
        IFSOLD=$IFS
    echo p dba $dba offset 0 kdbr | rlbbed | grep "sb2 kdbr" | sed "1s/^BBED> //" | awk -F"[][ ]+" -v a=$kdbr_size "$NF > a {print $3}" |
    sed "s+^+x $ff dba $dba *kdbr[+;s+$+]+"| rlbbed | sed -n "/^col /,/^BBED> /{s/^col .{13}: /^G/;/^$/d;/^BBED> /s/^.*$/^F/;p;}"| tr -d " " |
    awk "BEGIN{RS="^F"} {print $0}" | while read line
    do
       echo "$line" | sed "s/^G//" | tr "^G" " " | sed -f ff.sed| paste -sd"|"
    done
done

--//注意^G,^F的输入.linux下ctrl+v ctrl+g,ctrl+v ctrl+f. windows下ctrl+q ctrl+g,ctrl+q ctrl+f.
--//简单说明,不然自己以后都读不懂源代码: 生成的ff.sed脚本主要使用sed解决输出信息中数字,日期结尾存在空格问题以及NULL字段问题.
--//seq  -f "%-1.0f" $begin_block $end_block 主要因为一些版本seq 在大于1e6时显示科学记数问题.
$ seq  4000000 4000001
4e+006
4e+006

$ seq -f "%-1.0f" 4000000 4000001
4000000
4000001
--//sed -n "/^col /,/^BBED> /{s/^col .{13}: /^G/;/^$/d;/^BBED> /s/^.*$/^F/;p;}"
--//使用bbed x命令的输出,替换类似col    0[3] @8153: 使用^G,并作为字段分隔符,替换^BBED>开头的行使用^F,并作为记录分隔符,并输出.
--//使用tr -d " " 删除回车换行,这样变为1行.过滤awk定义RS="^F",这样read line就仅仅接收1条记录.

--//scan begin_block to end_block,define Scope.调用bbed仅仅1次.
--//数据块扫描 调用bbed每块3次.

$ .  fffext.sh 4 151 151 87108 nccntnnn
7369|SMITH|CLERK|7902|1980-12-17 00:00:00|800||20
7499|ALLEN|SALESMAN|7698|1981-02-20 00:00:00|1600|300|30
7521|WARD|SALESMAN|7698|1981-02-22 00:00:00|1250|500|30
7566|JONES|MANAGER|7839|1981-04-02 00:00:00|2975||20
7654|MARTIN|SALESMAN|7698|1981-09-28 00:00:00|1250|1400|30
7698|BLAKE|MANAGER|7839|1981-05-01 00:00:00|2850||30
7782|CLARK|MANAGER|7839|1981-06-09 00:00:00|2450||10
7788|SCOTT|ANALYST|7566|1987-04-19 00:00:00|3000||20
7839|KING|PRESIDENT||1981-11-17 00:00:00|5000||10
7844|TURNER|SALESMAN|7698|1981-09-08 00:00:00|1500|0|30
7876|ADAMS|CLERK|7788|1987-05-23 00:00:00|1100||20
7900|JAMES|CLERK|7698|1981-12-03 00:00:00|950||30
7902|FORD|ANALYST|7566|1981-12-03 00:00:00|3000||20
7934|MILLER|CLERK|7782|1982-01-23 00:00:00|1300||10

$ diff <(.  fffext.sh 4 151 151 87108 nccntnnn) <(. fff.sh 4 151 151 87108 nccntnnn)

--//说明跟以前的脚本的输出没有任何不同.

您可能感兴趣的文档:

--结束END--

本文标题: [20210930]bbed读取数据块7 fffext.sh.txt

本文链接: https://www.lsjlt.com/news/8811.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle BBED怎么修改数据块中的数据
    本篇内容介绍了“Oracle BBED怎么修改数据块中的数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • Pandas数据集的分块读取的实现
    目录一、直接用分块方式读取数据集文件(更直接)二、先将数据集读取为可迭代对象,再分块读取(更灵活)总结所谓“分块”,顾名思义,就是将数据集分成几块进行读取,比...
    99+
    2024-04-02
  • python读取leveldb数据
    import sys import leveldb def read_data(): if len(sys.argv) < 2: print "pls input leveldb dir" return -1 db = ...
    99+
    2023-01-31
    数据 python leveldb
  • Java读取yaml数据
    YAML YAML 数据结构可以用类似大纲的缩排方式呈现,结构通过缩进来表示,连续的项目通过减号“-”来表示,map结构里面的key/value对用冒号“:”来分隔。 下面介绍两种 Java 读取 Yaml 内容的方式: 1.SnakeYa...
    99+
    2023-08-17
    java 开发语言
  • nodejs中如何使用node-xlsx模块读取excel数据
    这篇文章给大家分享的是有关nodejs中如何使用node-xlsx模块读取excel数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.安装node-xlsxnode-xlsx模块 用于读取xlsx文件中的内容...
    99+
    2023-06-14
  • SQL数据库怎么读取数据
    本篇内容介绍了“SQL数据库怎么读取数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   &...
    99+
    2024-04-02
  • mysql如何读取数据库数据
    mysql 读取数据库数据有两种常用方法:select 语句,用于从表中提取数据,语法为:select [列名] from [表名] [条件] [分组] [条件] [排序] [...
    99+
    2024-04-14
    mysql python
  • pycharm怎么读取数据
    在 pycharm 中读取数据的方法:使用 pandas 从 csv 文件读取:导入 pandas 库使用 read_csv() 方法读取数据使用 numpy 从文本文件读取:导入 nu...
    99+
    2024-04-17
    python pycharm
  • redis怎么读取数据
    redis 提供了多种数据读取方法,包括:get(单个键值读取)、mget(批量键值读取)、hget(哈希表键值读取)、hgetall(哈希表所有键值读取)、lrange(列表范围数据读...
    99+
    2024-04-02
  • sql怎么读取数据
    要使用 sql 读取数据,可以使用 select 语句,其基本语法为:select 列名 from 表名;可通过 where 子句指定条件、order by 子句排序...
    99+
    2024-04-02
  • PostgreSQL 源码解读(8)- 插入数据#7(ExecutePlan)
    本文简单介绍了PG插入数据部分的源码,主要内容包括ExecutePlan函数的实现逻辑,该函数位于execMain.c中。 一、基础信息 ExecutePlan函数使用的数据结构、...
    99+
    2024-04-02
  • Ajax如何读取数据
    这篇文章给大家分享的是有关Ajax如何读取数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 拿出来我们上次准备好的东...
    99+
    2024-04-02
  • python Pandas 读取数据,写
    pandas 选取数据 iloc和 loc的用法不太一样,iloc是根据索引, loc是根据行的数值>>> import pandas as pd >>> import os >>> o...
    99+
    2023-01-31
    数据 python Pandas
  • mysql怎么读取数据
    如何从 mysql 中读取数据?mysql 提供了多种方法来读取数据,最常用的方法是使用 select 语句。其他方法还包括游标、存储过程和触发器。 如何从 MySQL 中读...
    99+
    2024-04-22
    mysql
  • mongodb怎么读取数据
    在MongoDB中,你可以使用find()方法来读取数据。find()方法可以接收一个查询条件作为参数,返回满足条件的文档。下面是一...
    99+
    2023-09-06
    mongodb
  • php_dio读取串口数据
    php_dio读取串口数据 一、运行环境 php_dio.dll需要找到与PHP版本相匹配的版本,下载后打开扩展完成安装。 下载地址phpStudy2018 切换到PHP 7.0.12-NTS。(更...
    99+
    2023-09-24
    php 开发语言
  • RMAN-06169: 无法读取数据文件的文件标头7解决方法
    C:\Users\Administrator>rman target / 恢复管理器: Release 11.2.0.1.0 - Production on 星期一 8月 15 23:46:...
    99+
    2024-04-02
  • 在 PHP 中获取和读取数据
    我们在开发 PHP 应用程序时会遇到不同的内容。有时,我们需要读取文件并从用户、其他来源和应用程序获取内容。 在 PHP 和大多数编程语言中,我们可以使用不同的方式和过程来获取请求和读取内容。内置函...
    99+
    2024-02-27
  • 从MySQL数据库binlog中读取数据
    1. 执行SQL查看Binlog日志文件名: show binary logs; 举个例子 2.去官网(https://dev.mysql.com/downloads/installer/)下载一个...
    99+
    2023-09-03
    数据库 mysql php
  • python怎么读取oracle数据库数据
    要从Oracle数据库中读取数据,可以使用Python中的cx_Oracle模块。 首先,确保已经安装了cx_Oracle模块。可以...
    99+
    2024-04-09
    python oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作