加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl日常处理脚本收集

发布时间:2020-12-16 00:12:37 所属栏目:大数据 来源:网络整理
导读:1.包含/tablespace/的行 #!/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大小写并且行前含有空格情况 #
1.包含/tablespace/的行
#!/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 filen";
while(<FL>)
{
???? if($flag==0) {
????????????????? if(/creates+w*.*table/i) {
?????????????????? s/tablespaces+w+/TABLESPACE data/;??? # tablespace 替换成指定DATA
??????????????????? if(/;/) {$flag=0;}?????????????????????? #如果遇到分号 $flag=0,
??????????????????? else {$flag=1;}????????????????????????? # 否则$flag=1;
??????????????????? print $_;???? }??????????????????????? #输出$_;
????????????????? elsif(/creates+w*.*index/i) {????????????????? #否则/create index/ tablespace 替换成指定IND
?????????????????? s/tablespaces+w+/TABLESPACE ind/;?????? #如果遇到分号$flag=0,
?????????????????? if(/;/){$flag=0;}??????????????????????? #否则$flag=2;
?????????????????? else{$flag=2;}
?????????????????? print $_;????????????? }???????????????? #输出$_;
???????????????????? else {print $_;}
????????????????? }
????? elsif($flag==1){
??????????????????? s/tablespaces+w+/TABLESPACE data/i;?? ?
?????????????????? if(/;/){$flag=0;}?????????????????????? ?
??????????????????? else{$flag=1;}?????????????????????? ?
?????????????????? print $_;?? }
????? elsif($flag==2){
??????????????? s/tablespaces+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*tablespaces+(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/tablespaces+w+/TABLESPACE COMM_IND/ig;
?????????????????????????? }
?? elsif($field =~ /NGCRM_FS./ig){
????? $field=~s/tablespaces+w+/TABLESPACE XX_CRM_IND/ig;
?? }
????? elsif($field =~ /GDHSC./ig){
????? $field=~s/tablespaces+w+/TABLESPACE GD_HSC_IND/ig;
????? }
?????? elsif($field =~ /FSHSC./ig){
???????? $field=~s/tablespaces+w+/TABLESPACE FS_HSC_IND/ig;
??????? }
?????????? elsif($field =~ /FSIB./ig){
??????????? $field=~s/tablespaces+w+/TABLESPACE FS_IB_IND/ig;
??????? }
?????????????? elsif($field =~ /FSIBHIS./ig){
??????????????? $field=~s/tablespaces+w+/TABLESPACE FS_IBHIS_IND/ig;
??????? }
????????????????????????????? }
elsif ($field =~ /s*creates+table/ig)
{
if ($field =~ /NGCRM_COMM./ig) {
???? $field=~s/tablespaces+w+/TABLESPACE COMM_DATA/ig;
?????????????????????????? }
?? elsif($field =~ /NGCRM_FS./ig){
????? $field=~s/tablespaces+w+/TABLESPACE XX_CRM_DATA/ig;
?? }
????? elsif($field =~ /GDHSC./ig){
????? $field=~s/tablespaces+w+/TABLESPACE GD_HSC_DATA/ig;
????? }
?????? elsif($field =~ /FSHSC./ig){
???????? $field=~s/tablespaces+w+/TABLESPACE FS_HSC_DATA/ig;
??????? }
?????????? elsif($field =~ /FSIB./ig){
??????????? $field=~s/tablespaces+w+/TABLESPACE FS_IB_DATA/ig;
??????? }
?????????????? elsif($field =~ /FSIBHIS./ig){
??????????????? $field=~s/tablespaces+w+/TABLESPACE FS_IBHIS_DATA/ig;
??????? }
}

print $field."n";
}
[oracle@localhost ~]$

-----------------------------------------------------

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读