perl日常处理脚本收集
来源:互联网 发布:老年网络大学 编辑:程序博客网 时间:2024/06/09 18:23
#!/usr/bin/perl
open(FL,"1")||die "can't open file";
while(<FL>){
s/$_/;/ if /tablespace/i;
print $_;
}
print "\n";
2.以/tablespace/开头行
...
s/$_/;/ if /^tablespace/i;
...
3.tablespace大小写并且行前含有空格情况
#!/usr/bin/perl
open(FL,"1")||die "can't open file";
while(<FL>){
s/$_/;/ if /\s*tablespace/i;
print $_;
}
close(FS,"1");
print "\n";
---------------------------------------------------------------------
功能:遇到create table 情况将后面的tablespace替换成指定的表空间名,遇到create index也是如些;
#!/usr/bin/perl
open(FL,"3")||die "can't open the file\n";
while(<FL>)
{
if($flag==0) {
if(/create\s+\w*\.*table/i) {
s/tablespace\s+\w+/TABLESPACE data/; # tablespace 替换成指定DATA
if(/;/) {$flag=0;} #如果遇到分号 $flag=0,
else {$flag=1;} # 否则$flag=1;
print $_; } #输出$_;
elsif(/create\s+\w*\.*index/i) { #否则/create index/ tablespace 替换成指定IND
s/tablespace\s+\w+/TABLESPACE ind/; #如果遇到分号$flag=0,
if(/;/){$flag=0;} #否则$flag=2;
else{$flag=2;}
print $_; } #输出$_;
else {print $_;}
}
elsif($flag==1){
s/tablespace\s+\w+/TABLESPACE data/i;
if(/;/){$flag=0;}
else{$flag=1;}
print $_; }
elsif($flag==2){
s/tablespace\s+\w+/TABLESPACE ind/i;
if(/;/){$flag=0;}
else{$flag=2;}
print $_;
}
}
close(FL);
------------------------将文本中的DDL语句的属主要表空间抽出,用perl正则表式2句话就能搞定了,牛---
perl -ne'print "OWNER:".$1."\n" if /create .* (\w+)\./i;' 3 |sort -u
perl -ne 'print "TABLESPACE:".$1."\n" if /\s*tablespace\s+(\w+)\s*;/i' 3 |sort -u
------------------------根据表/索引,属主,来替换相应的表空间
[oracle@localhost ~]$ cat t4
#!/usr/bin/perl
$/=';';
open(FL,"4");
my @state=<FL>;
close(FL);
foreach $field (@state){
if ($field =~/create.*index/ig){
if ($field =~ /NGCRM_COMM\./ig) {
$field=~s/tablespace\s+\w+/TABLESPACE COMM_IND/ig;
}
elsif($field =~ /NGCRM_FS\./ig){
$field=~s/tablespace\s+\w+/TABLESPACE XX_CRM_IND/ig;
}
elsif($field =~ /GDHSC\./ig){
$field=~s/tablespace\s+\w+/TABLESPACE GD_HSC_IND/ig;
}
elsif($field =~ /FSHSC\./ig){
$field=~s/tablespace\s+\w+/TABLESPACE FS_HSC_IND/ig;
}
elsif($field =~ /FSIB\./ig){
$field=~s/tablespace\s+\w+/TABLESPACE FS_IB_IND/ig;
}
elsif($field =~ /FSIBHIS\./ig){
$field=~s/tablespace\s+\w+/TABLESPACE FS_IBHIS_IND/ig;
}
}
elsif ($field =~ /\s*create\s+table/ig)
{
if ($field =~ /NGCRM_COMM\./ig) {
$field=~s/tablespace\s+\w+/TABLESPACE COMM_DATA/ig;
}
elsif($field =~ /NGCRM_FS\./ig){
$field=~s/tablespace\s+\w+/TABLESPACE XX_CRM_DATA/ig;
}
elsif($field =~ /GDHSC\./ig){
$field=~s/tablespace\s+\w+/TABLESPACE GD_HSC_DATA/ig;
}
elsif($field =~ /FSHSC\./ig){
$field=~s/tablespace\s+\w+/TABLESPACE FS_HSC_DATA/ig;
}
elsif($field =~ /FSIB\./ig){
$field=~s/tablespace\s+\w+/TABLESPACE FS_IB_DATA/ig;
}
elsif($field =~ /FSIBHIS\./ig){
$field=~s/tablespace\s+\w+/TABLESPACE FS_IBHIS_DATA/ig;
}
}
print $field."\n";
}
[oracle@localhost ~]$
-----------------------------------------------------
- perl日常处理脚本收集
- 日常处理脚本临时记录 --20130517
- 日常收集
- perl脚本file处理模块展示
- 日常练习[perl]
- perl 脚本
- perl脚本
- scite使用日常收集
- mysql 日常技术收集
- erlang日常收集方法
- 学习日常链接收集
- 处理gmail邮件的Perl脚本(Ubuntu)
- 脚本收集
- oracle日常备份脚本
- linux日常巡检脚本
- SQL 日常检查脚本
- SQL 日常检查脚本
- oracle 日常检查脚本
- I Have A Dream !
- .net 如何设置ischecked的值
- sql where 1=1和 0=1 的作用
- unity3d导入贴图和模型
- iOS小技巧
- perl日常处理脚本收集
- 优化查询
- 开源网络库ACE、Boost的ASIO、libevent、libev、ZeroMQ
- 学习uCos之路(2)
- 1.9 简化字符串的translate方法的使用
- 2013年4月网上银行行业网站综合影响力排名
- 坚持,韧性
- gridview数据源来自存储过程
- uva 10617 Again Palindrome