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) |