1 写一个脚本,产生一个 phonenum.txt文件,随时产生以139开头的手机号1000个,每个一行
#! /bin/env bash
file=./phonenum.txt
for ((i=1;i<=1000;i++))
do
n1=$[$RANDOM%10]
n2=$[$RANDOM%10]
n3=$[$RANDOM%10]
n4=$[$RANDOM%10]
n5=$[$RANDOM%10]
n6=$[$RANDOM%10]
n7=$[$RANDOM%10]
n8=$[$RANDOM%10]
echo "139$n1$n2$n3$n4$n5$n6$n7$n8" >> $file
done
注意:
1 显示文本有多少行
wc -l 文件
2 我在file那行 =多了一个空格
一直显示无法定位到 file文件
3 for 要使用两个 ()
不然语法错误
4 for ((i=1;i<=1000;i++))
把 i<=1000 写成了 l<=1000 然后成了死循环
2 从上面的1000个手机号里面抽奖5个幸运观众,显示出这5个幸运观众
但 只显示头三个数和尾号四个数,中间数都用*代替
#! /bin/bash
phone=./phonenum.txt
for ((i=1;i<=5;i++))
do
# line得到有多少行
line=`wc -l $phone |cut -d' ' -f1`
# luck_line 得到 1到 line 的随机数
luck_line=$[RANDOM%$line+1]
# luck_num 得到文件的 第luck_line 行数据
luck_num=`head -$luck_line $phone|tail -1`
# luck_num:7:4 取 luck_num 从第个8个数开始取4个数
echo "139****${luck_num:7:4}"
echo $luck_num >> luck.txt
# 从源文件中删除 第luck_num 行
sed -i "/$luck_num/d" $phone
done