写了个shell,吐血的同时,感受到了awk 和sed的强大

本文介绍了一个使用Shell脚本来处理系统日志文件的例子。该脚本通过grep、awk、sed等命令实现了从多个日志文件中抽取特定格式的数据,并进行一系列的转换和组合操作,最终整合成一个统一的格式输出到新的文件中。此外,脚本还包含了将处理后的数据导入数据库的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/sh
grep "00032(00020) 6d 62" com.log* | awk -F ' ' '{ print $18 }'|awk -F '*' '{ print $2 }' >temp1;
cat temp1 |awk '{if(NR%2==0) print $0}'>temp1_b;
#

sed 's/拆出变量|#fd9/拆出变量#fd9/g' <com.log>temp4;
sed 's/拆出变量|#fd9/拆出变量#fd9/g' <com.log.0912121409>>temp4;
grep "拆出变量#fd9" temp4 | awk -F '|' '{ print $3 }' >temp4_bak;
#
paste -d '|' temp1_b temp4_bak>temp1_bb;

sed 's/$/|1|mb|20091212|/g' <temp1_bb>temp1_bak;

grep "00016(00010) 30 39 31 32 31 32" com.log* | awk -F ' ' '{ print $18 }'|awk -F '*' '{ print 20$1 }' |awk -F '00' '{ print $3}' >temp2;
cat temp2 | awk '{if(NR%2==0) print $0}'>temp2_b;
sed 's/$/|||/g' <temp2_b>temp2_bak;
#

sed 's/取变量|#fd6值为/取变量#fd6值为/g' <com.log> tmp3;
sed 's/取变量|#fd6值为/取变量#fd6值为/g' <com.log.0912121409>> tmp3;
grep "取变量#fd6值为" tmp3 |awk -F '|' '{ print $3 }' >temp3_b;
#
cat com_trace_log_20091212.dat | awk -F '|' '{ if(NR%2-1==0) print $5,$21}'>temp3;
cat temp3 | sed 's/ /|/g'>temp3_bbb;
paste -d '|' temp3_b temp3_bbb>temp3_bb;
#
sed 's/$/|1|0||00|0000|缴费|/g' <temp3_bb>temp3_bak;

rm -f com_reg;
paste -d '|' temp1_bak temp2_bak temp3_bak >com_reg;
dbaccess $DBNAME <<!
delete from com_reg_bak;
load from com_reg insert into com_reg_bak;
!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值