> shell编程 >

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

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



(责任编辑:IT)