去oracle注释的正则表达式,使用文本处理命令抽取/ORACLE/RDBMS/admin目录下脚本的注释信息(可以使用正则表达式匹配)...

该脚本主要用于从/ORACLE/RDBMS/admin目录下的SQL文件中提取注释信息。首先,它创建临时目录并清理结果文件。接着,列出指定目录下的所有SQL文件,并替换文件中的^M字符。然后,找出每份文件中NAME和MODIFIED注释所在的行号,并写入info.txt。最后,将注释信息输出到result.txt,并清理临时文件。
摘要由CSDN通过智能技术生成

#!/bin/sh

#使用文本处理命令抽取/ORACLE/RDBMS/admin目录下脚本的注释信息

set echo on

echo "clean env..."

mkdir temp

rm -f result.txt

#获取/ORACLE/RDBMS/admin目录下的文件列表:

echo "get sql file list ..."

ls -l $ORACLE_HOME/rdbms/admin |awk '{print $NF}'|grep .sql$ >sql.list

#替换所有文件中所有^M字符:

echo "replace ^M char ..."

while read line

do

sed 's/^M//g' $ORACLE_HOME/rdbms/admin/$line >./temp/$line

done

#输出需要打印的文件及始末行行号到info.txt文件中:

echo "output file ,start and end line number to print ..."

for i in `cat sql.list`

do

awk -v var=$i 'BEGIN{i=1&&j=1}

$0=="rem NAME"

||$0=="-- NAME"

||$0=="Rem NAME"

||$0=="Rem NAME"

||$0=="Rem NAME"

||$0=="REM NAME"

||$0=="rem NAME"

||$0=="rem NAME"

||$0=="REM NAME"

{i=NR}

$0=="rem MODIFIED"

||$0=="-- MODIFIED MM/DD/YY"

||$0=="Rem MODIFIED (MM/DD/YY)"

||$0=="Rem MODIFIED (MM/DD/YY)"

||$0=="Rem MODIFIED"

||$0=="REM MODIFIED (MM/DD/YY)"

||$0=="rem MODIFIED (MM/DD/YY)"

||$0=="rem MODIFIED (MM/DD/YY)"

||$0=="REM MODIFIED (MM/DD/YY)"

||$0=="Rem MODIFIED"

||$0=="Rem MODIFIED (MM/DD/YY)"

{j=NR}END{print var,i,j - 1}' ./temp/$i>>info.txt;

done

##cat info.txt |grep "1 1" |wc -l

#输出所有文件的注释信息到result.txt文件中:

echo "print descripiton info to result.txt..."

while read line

do

a=`echo $line|cut -d" " -f1`

echo $a

b=`echo $line|cut -d" " -f2`

echo $b

c=`echo $line|cut -d" " -f3`

echo $c

sed -n "${b},${c}p" $a>>result.txt

echo "------------------------">>result.txt

doneecho "clean temp file ..."

rm -f ./info.txt

rm -rf ./temp

rm -f sql.list[@more@]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值