linux删除文件前五行中包含字母的行,shell练习:把一个文本文档的前5行中包含字母的行删除掉,同时把6到10行中的全部字母删除掉...

shell练习:把一个文本文档的前5行中包含字母的行删除掉,同时把6到10行中的全部字母删除掉

答案:#! /bin/bash

## 把一个文本文档的前5行中包含字母的行删除掉,同时把6到10行中的全部字母删除掉。

## 假设文本名字叫做1.txt,并且文本行数大于10,脚本如下。

##先获取该文本的行数

nu=`wc -l 2.txt | awk '{print $1}'`

##对前5行进行处理

for i in `seq 1 5`

do

##使用sed把每一行的内容赋值给变量

l=`sed -n "$i"p 2.txt`

##用grep判定是否匹配字母,-v取反,-q不输出内容

if echo $l |grep -vq '[a-zA-Z]'

then

echo $l

fi

done

##对6-10行做删除处理

for i in `seq 6 10`

do

l=`sed -n "$i"p 2.txt`

echo $i | sed 's/[a-zA-Z]//g'

done

##剩余的直接输出

for i in `seq 11 $nu`

do

sed -n "$i"p 2.txt

done

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值