问题
- 文件名 : uid.log
- 读取文件内容 : uid:score|exp|sex|name (例如: 101:100|37|2|名字)
-
请写一个脚本,遍历所有的日志,把所有exp>100的,并且sex=1的用户找出来,并记录到文件result.log中,记录格式: uid|exp|sex(例:101|190|1) ,每条记录一行。
title.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)
-
uid=
echo $b | awk -F : '{print $1}'
中的单引号: 命令需要用`符号引用起来 -
使用cat命令查看一下结果
cat uid.log
cat result.log
result.png
网友评论