用脚本删除文本中的字母
要求:把一个文本文档的前5行中包含字母的行删除掉,同时把6到10行中的全部字母删除掉。
#!/bin/bash
# 先获取该文本的行数
rows=`wc -l 1.txt |awk '{print $1}'`
# 对前5行进行处理
for i in `seq 1 5`
do
# 使用sed把每一行的内容赋值给变量
row=`sed -n "$i"p 1.txt`
# 用grep 判定是否匹配字母,-v取反,-q不输出内容
if echo $row |grep -vq '[a-zA-Z]'
then
echo $row
fi
done
# 对6-10行做删除字母处理
for i in `seq 6 10`
do
row=`sed -n "$i"p 1.txt`
echo $row |sed 's/[a-zA-Z]//g'
done
# 剩余的直接输出
for i in `seq 11 $rows`
do
sed -n "$i"p 1.txt
done
查看1.txt文件的行数
[root@localhost tmp]#wc -l 1.txt
12 1.txt
[root@localhost tmp]#wc -l 1.txt | awk '{print $1}'
12
1.txt文本内容
123456
654321
123abc456
564abc123
123456
135abc246
246abc135
12uio21
qwe1234
1234jkl
1234567890
0987654321