linux sed 慢,echo/awk/sed的性能问题

写了一个shell脚本,主要是做文本处理,大概是读取一个文件的内容,对每行的内容做匹配,如果匹配关键字符的话,就取出来,后续做echo显示。

大部分都是这种语句:

if [[ $LINE =~ "^SIB :  " ]]

then

sib=`echo $LINE | awk '{ print $NF }' | sed 's/://g'`

continue

#        echo $sib

fi

if [[ $LINE =~ "^Optics [0-9]*:" ]]

then

optics_slot=`echo $LINE | awk '{ print $2 }' | sed 's/://g'`

optics_status=`echo $LINE | awk '{ print $NF }'`

if [[ "$optics_status" =~ "NOT_SUPPORTED" ]] || [[ "$optics_status" =~ "MODULE_ABSENT" ]] || [[ "optics_status" =~ "MODULE_FAULT" ]]

then

echo "$router    $sib    $optics_slot    $optics_status"

fi

continue

fi

if [[ $LINE =~ "^Vendor " ]]

then

vendor=`echo $LINE | awk '{ print $4 }'`

version=`echo $LINE | awk '{ print $9 "." $NF }'`

#        echo $vendor $version

continue

fi

写完之后,发现执行的特别慢。一个1万行的文本文件,要执行1分钟左右。

请问这是awk、sed执行的性能问题吗?还是我的脚本使用函数的方式不对?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值