问题
- 文件名 : uid.log
- 读取文件内容 : uid:score|exp|sex|name (例如: 101:100|37|2|名字)
-
请写一个脚本,遍历所有的日志,把所有exp>100的,并且sex=1的用户找出来,并记录到文件result.log中,记录格式: uid|exp|sex(例:101|190|1) ,每条记录一行。
image.png
脚本
cat uid.log | while read line
do
echo $line | awk -F \| '{print $0,$1,$2,$3,$4}' | while read a b c d e
do
if [ "$c" -gt "100" -a "$d" -ge "1" ]; then
uid=`echo $b | awk -F : '{print $1}'`
echo $uid'|'$c'|'$d >> result.log
fi
done
done
- cat 读取文件
- awk 分割字符串
- echo "内容" >> 文件
- awk 后跟的$0-4五个变量是因为$0是原记录行,分割前的数据,然后将变量分别读入a b c d e五个变量中(read a b c d e)
网友评论