linux和aix命令总结

sed和perl

 

perl常用参数说明

参数 -n和-p -e -i

1.-n和-p 增加了循环的功能,使你可以一行一行来处理文件

2.-e

可以让Perl程序在Perl命令行上运行.

例如,我们可以在Perl命令行上运行"HelloWorld"程序而不用把它写入文件再运行.

$perl-e'print"HelloWorld\n"'

3:-i

把源文件更名然后从这个更名的源文件里读取.最后把处理后的数据写入源文件.

如果-i后跟有其他字符串,这个字符串与源文件名合成后来生成一个新的文件名.

此文件会被用来储存原始文件以免被-i参数覆盖.

 

AIX 举例:grep -irl '20201207' . | xargs perl -p -i -e 's/20201207/20201208/g'

说明:因为aix操作系统中,sed没有-i参数,无法直接修改原文件,所以使用perl命令修改原文件。

不管是sed还是perl,如果想要用变量替代字符串时,使用双引号替换单引号就可以了。

AIX和LINUX对于@字符的处理不同,AIX需要转义字符\才能匹配,LINUX不需要。

AIX写法:

echo "replace [ulog/ULOG@bizdb]";
grep -irl 'ulog/ULOG@bizdb' . | xargs perl -p -i -e 's/ulog\/ULOG\@bizdb/ulog\/ULOG\@dmpdb/g';

echo "replace [clear/clear@bizdb]";
grep -irl 'clear/clear@bizdb' . | xargs perl -p -i -e 's/clear\/clear\@bizdb/clear\/clear\@dmpdb/g';

echo "replace [interface/interface@bizdb]";
grep -irl 'interface/interface@bizdb' . | xargs perl -p -i -e 's/interface\/interface\@bizdb/interface\/interface\@dmpdb/g';

echo "replace [trade/trade@bizdb]";
grep -irl 'trade/trade@bizdb' . | xargs perl -p -i -e 's/trade\/trade\@bizdb/trade\/trade\@dmpdb/g';

echo "replace [security/security@bizdb]";
grep -irl 'security/security@bizdb' . | xargs perl -p -i -e 's/security\/security\@bizdb/security\/security\@dmpdb/g';

LINUX写法:

echo "replace [ulog/ULOG@bizdb]";
grep -irl 'ulog/ULOG@bizdb' . | xargs  sed -i 's/ulog\/ULOG@bizdb/ulog\/ULOG@dmpdb/gi';

echo "replace [clear/clear@bizdb]";
grep -irl 'clear/clear@bizdb' . | xargs  sed -i 's/clear\/clear@bizdb/clear\/clear@dmpdb/gi';

echo "replace [interface/interface@bizdb]";
grep -irl 'interface/interface@bizdb' . | xargs  sed -i 's/interface\/interface@bizdb/interface\/interface@dmpdb/gi';

echo "replace [trade/trade@bizdb]";
grep -irl 'trade/trade@bizdb' . | xargs  sed -i 's/trade\/trade@bizdb/trade\/trade@dmpdb/gi';

echo "replace [security/security@bizdb]";
grep -irl 'security/security@bizdb' . | xargs  sed -i 's/security\/security@bizdb/security\/security@dmpdb/gi';

 

AIX操作系统
#!/bin/sh
######################################################

date_replaced=$1
date_new=$2

#日期根据实际情况进行调整,默认从20201207开始,每日增量备份
#涉及文件:0_update_bigtables_date.sql
#涉及文件类: aix_3_impdp_xxxx.sql
#            x86_3_expdp_xxxx.sql
#            aix_5_check.sh
#            x86_5_check.sh
#下面含义是将20201207替换成20201208
echo "date_replaced [$date_replaced]";
echo "date_new [$date_new]";
echo "grep -irl $date_replaced . | xargs  perl -p -i -e "s/$date_replaced/$date_new/g"";
grep -irl $date_replaced . | xargs perl -p -i -e "s/$date_replaced/$date_new/g";

######################################################
#当客户现场的用户名密码,实例名,导入导出目录和默认的不同时处理,否则不处理
#涉及文件类:aix_3_impdp_xxxx.sql
#            x86_3_expdp_xxxx.sql
#下面含义是将ulog/ULOG@bizdb替换成ulog/ULOG@dmpdb   
echo "replace [ulog/ULOG@bizdb]";
grep -irl 'ulog/ULOG@bizdb' . | xargs perl -p -i -e 's/ulog\/ULOG\@bizdb/ulog\/ULOG\@dmpdb/g';

echo "replace [clear/clear@bizdb]";
grep -irl 'clear/clear@bizdb' . | xargs perl -p -i -e 's/clear\/clear\@bizdb/clear\/clear\@dmpdb/g';

echo "replace [interface/interface@bizdb]";
grep -irl 'interface/interface@bizdb' . | xargs perl -p -i -e 's/interface\/interface\@bizdb/interface\/interface\@dmpdb/g';

echo "replace [trade/trade@bizdb]";
grep -irl 'trade/trade@bizdb' . | xargs perl -p -i -e 's/trade\/trade\@bizdb/trade\/trade\@dmpdb/g';

echo "replace [security/security@bizdb]";
grep -irl 'security/security@bizdb' . | xargs perl -p -i -e 's/security\/security\@bizdb/security\/security\@dmpdb/g';

#下面含义是将directory=ORABAK替换成directory=ORABAK1  
#echo "replace [directory=ORABAK]";
#grep -irl 'directory=ORABAK' . | xargs perl -p -i -e 's/directory=ORABAK/directory=ORABAK1/g';


#涉及文件类:aix_1_replace.sh
#            aix_2_bigtables.sh
#            aix_3_generate.sh
#            aix_5_check.sh
#            x86_1_replace.sh
#            x86_2_bigtables.sh
#            x86_3_generate.sh
#            x86_5_check.sh
#下面含义是将ORACLE_SID=bizdb替换成ORACLE_SID=dmpdb
echo "replace [ORACLE_SID=bizdb]";
grep -irl 'ORACLE_SID=bizdb' . | xargs  perl -p -i -e 's/ORACLE_SID=bizdb/ORACLE_SID=dmpdb/g';
######################################################
#下面含义是将securitypassword="security"替换成securitypassword="security_test"
#echo "replace [securitypassword="security"]";
#grep -irl 'securitypassword="security"' . | xargs perl -p -i -e 's/securitypassword="security"/securitypassword="security_test"/g';

#echo "replace [clearpassword="clear"]";
#grep -irl 'clearpassword="clear"' . | xargs perl -p -i -e 's/clearpassword="clear"/clearpassword="clear_test"/g';

#echo "replace [tradepassword="trade"]";
#grep -irl 'tradepassword="trade"' . | xargs perl -p -i -e 's/tradepassword="trade"/tradepassword="trade_test"/g';

#echo "replace [interfacepassword="interface"]";
#grep -irl 'interfacepassword="interface"' . | xargs perl -p -i -e 's/interfacepassword="interface"/interfacepassword="interface_test"/g';

#echo "replace [ulogpassword="ULOG"]";
#grep -irl 'ulogpassword="ULOG"' . | xargs perl -p -i -e 's/ulogpassword="ULOG"/ulogpassword="ULOG_test"/g';
LINUX操作系统
#!/bin/sh
######################################################

date_replaced=$1
date_new=$2

#日期根据实际情况进行调整,默认从20201207开始,增量备份
#涉及文件:0_update_bigtables_date.sql
#涉及文件类: aix_3_impdp_xxxx.sql
#            x86_3_expdp_xxxx.sql
#            aix_5_check.sh
#            x86_5_check.sh
#下面含义是将20201207替换成20201208
echo "date_replaced [$date_replaced]";
echo "date_new [$date_new]";
echo "grep -irl $date_replaced . | xargs  sed -i \"s/$date_replaced/$date_new/gi\"";
grep -irl $date_replaced . | xargs  sed -i "s/$date_replaced/$date_new/gi";

######################################################
#当客户现场的用户名密码,实例名,导入导出目录和默认的不同时处理,否则不处理
#涉及文件类:aix_3_impdp_xxxx.sql
#            x86_3_expdp_xxxx.sql
#下面含义是将ulog/ULOG@bizdb替换成ulog/ULOG@dmpdb   
echo "replace [ulog/ULOG@bizdb]";
grep -irl 'ulog/ULOG@bizdb' . | xargs  sed -i 's/ulog\/ULOG@bizdb/ulog\/ULOG@dmpdb/gi';

echo "replace [clear/clear@bizdb]";
grep -irl 'clear/clear@bizdb' . | xargs  sed -i 's/clear\/clear@bizdb/clear\/clear@dmpdb/gi';

echo "replace [interface/interface@bizdb]";
grep -irl 'interface/interface@bizdb' . | xargs  sed -i 's/interface\/interface@bizdb/interface\/interface@dmpdb/gi';

echo "replace [trade/trade@bizdb]";
grep -irl 'trade/trade@bizdb' . | xargs  sed -i 's/trade\/trade@bizdb/trade\/trade@dmpdb/gi';

echo "replace [security/security@bizdb]";
grep -irl 'security/security@bizdb' . | xargs  sed -i 's/security\/security@bizdb/security\/security@dmpdb/gi';

#下面含义是将directory=ORABAK替换成directory=ORABAK1  
echo "replace [directory=ORABAK]";
grep -irl 'directory=ORABAK' . | xargs  sed -i 's/directory=ORABAK/directory=ORABAK1/gi';

#涉及文件类:aix_1_replace.sh
#            aix_2_bigtables.sh
#            aix_3_generate.sh
#            aix_5_check.sh
#            x86_1_replace.sh
#            x86_2_bigtables.sh
#            x86_3_generate.sh
#            x86_5_check.sh
#下面含义是将ORACLE_SID=bizdb替换成ORACLE_SID=dmpdb
echo "replace [ORACLE_SID=bizdb]";
grep -irl 'ORACLE_SID=bizdb' . | xargs  sed -i 's/ORACLE_SID=bizdb/ORACLE_SID=dmpdb/gi';
######################################################
#下面含义是将securitypassword="security"替换成securitypassword="security_test"
echo "replace [securitypassword="security"]";
grep -irl 'securitypassword="security"' . | xargs  sed -i 's/securitypassword="security"/securitypassword="security_test"/gi';

echo "replace [clearpassword="clear"]";
grep -irl 'clearpassword="clear"' . | xargs  sed -i 's/clearpassword="clear"/clearpassword="clear_test"/gi';

echo "replace [tradepassword="trade"]";
grep -irl 'tradepassword="trade"' . | xargs  sed -i 's/tradepassword="trade"/tradepassword="trade_test"/gi';

echo "replace [interfacepassword="interface"]";
grep -irl 'interfacepassword="interface"' . | xargs  sed -i 's/interfacepassword="interface"/interfacepassword="interface_test"/gi';

echo "replace [ulogpassword="ULOG"]";
grep -irl 'ulogpassword="ULOG"' . | xargs  sed -i 's/ulogpassword="ULOG"/ulogpassword="ULOG_test"/gi';

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值