0
点赞
收藏
分享

微信扫一扫

一个自用的抽取文件行内容shell脚本

#!/bin/bash

# 定义输出目录和文件前缀
dir=/root 
prefix=ribao

# 读取daily.txt文件内容,保存到数组中   
array=()
while read line
do
    if [[ -n $line ]]; then    
        array+=($line) 
    fi
done < daily.txt

# 随机选择7到9行 
line_count=$((RANDOM % 3 + 7))   

# 随机抽取line_count行
for i in $(seq $line_count);   
do
    index=$((RANDOM % ${#array[@]}))
    select[i]=${array[index]}
    unset array[index]
done

# 随机排序抽取的内容
for i in $(seq $line_count); 
do    
    temp=${select[i]}
    position=$((RANDOM % $i))
    select[i]=${select[$position]}
    select[$position]=$temp
done    

# 拼接文件名及文件内容
date=$(date +%Y-%m-%d)   
filename="$dir/$prefix$date.txt"  

# 输出文件前两列1.  2.  3. 递增   
index=1
for i in $(seq $line_count);
do
    if [[ -n ${select[i]} ]];then
        echo "$index. ${select[i]}" >> $filename
        index=$((index+1))    
    fi   
done   

# 删除前一天输出文件
yesterday=$(date -d "yesterday" +%Y-%m-%d)
rm $dir/$prefix$yesterday.txt  

echo "写入$filename成功!"   
echo "删除文件$dir/$prefix$yesterday.txt成功!"

举报

相关推荐

0 条评论