任务背景:因工作需要把大量生产系统下的.log文件发外进行分析,总数据量接近1T,单个文件大小约为1G。为了防止生产参数泄露,需将文件中指定内容修改为'xxx'以屏蔽敏感信息。
应用技术:Shell、sed、Python、threading多线程
方案一:Shell脚本+sed命令
>> cat rep_text.sh
#!/bin/bash
#This is a script for replacing contents in log.
function list_allfile(){ #使用递归函数将所有子目录下的文件保存在 f_list数组
for file in $(ls $1)
do
if [ -d $1"/"${file} ];then
list_allfile $1"/"${file}
else
f_list[i]=$1"/"${file}
let i++
fi
done
}
i=0 #初始化数组下标
list_allfile $1
for f in ${f_list[@]} #sed批处理
do
echo -n $f resolfing...
sed -i "s/aaa.bbb.ccc/x.x.x/" $f
echo [ok]
done
方案二:Python+threading多线程
import os
import th