shell小技巧(四十六)删除文件指定行和行部分内容

把一个文档前五行中包含字母的行删掉,同时删除6到10行包含的所有字母
测试文件内容类似:

1fffff

2222222

34545-=-93

4aaaAa

555555~#$%

6dfd444

7545454dfsdf

8888888

9999999A

10erewr

11gdfgfd888

1256456dgfd
代码:
方法1:

#!/bin/bash

sum=$(cat ./txt/delchar.txt | wc -l)

echo total:${sum}

head -5 ./txt/delchar.txt | sed  '/[a-zA-Z]/d' > ./txt/delchar1.txt

head -10 ./txt/delchar.txt | tail -5 | sed  's/[a-zA-Z]//g' >> ./txt/delchar1.txt

let lastpart=sum-10

tail -${lastpart} ./txt/delchar.txt >> ./txt/delchar1.txt

 

方法2:

#!/bin/bash

> ./txt/delchar2.txt

i=1

while read line

do

if [ $i -le 5 ]; then

   echo $line |sed  '/[a-zA-Z]/d' >> ./txt/delchar2.txt

elif [ $i -le 10 ] && [ $i -gt 5 ]; then

    echo $line

    echo $line |sed  's/[a-zA-Z]//g' >> ./txt/delchar2.txt

else

    echo $line >> ./txt/delchar2.txt

fi

let i=i+1

done < ./txt/delchar.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值