【第一个】

#!/bin/bash
#每个用户的总充值和消费以及剩余。

cat yuanbao.txt |grep -v 2016 |awk '{print $3}' |awk '!a[$0]++' >user.list #把用户名去重后添加到一个文件里

cat /dev/null > all.log

while read user
do
buy=`cat yuanbao.txt |grep $user |awk '{print $7}' |awk '{sum += $1};END {print sum}'` #取出所以第7列的总值
now=`cat yuanbao.txt |grep $user |awk 'END{print $9}'` #取出每个用户第9列的最后一行的值
zong=$((buy-now)) #总充值减去剩余的

echo "用户 $user 总充值 $buy 已消费 $zong 剩余 $now" >> all.log

done < user.list

【第二个】

#!/bin/bash
#每个用户每一天的充值buy总和
cat /dev/null > day.log

#NOW=date +%Y-%m
while read user
do
for ((i=1;i<=366;i++))
do
NOW=`date +%F`
SHIJIAN=`date -d "2013-12-31 +$i day" +%Y-%m-%d`
if [ ${SHIJIAN} = ${NOW} ]; then
break
fi
cat yuanbao.txt |grep $SHIJIAN |grep $user &>/dev/null
if [ $? -eq 0 ] ; then
BUY=`cat yuanbao.txt |grep $SHIJIAN |grep $user |awk '{print $7}' |awk '{sum += $1};END {print sum}'`
echo "$SHIJIAN 账号 $user 每一天buy总 $BUY" >> day.log
fi
done
done < user.list

【第三个】

#!/bin/bash
#每个用户每个月的充值总和
cat yuanbao.txt |grep -v 2016 |awk '{print $3}' |awk '!a[$0]++' >user.list #把用户名去重后添加到一个文件里
cat /dev/null > month.log

while read user
do
for ((i=1;i<=50;i++))
do
NOW=`date +%Y-%m`
SHIJIAN=`date -d "2013-12-01 +$i month" +%Y-%m`
if [ ${SHIJIAN} = ${NOW} ]; then
break
fi

cat yuanbao.txt |grep $SHIJIAN |grep $user &>/dev/null
if [ $? -eq 0 ] ; then
BUY=`cat yuanbao.txt |grep $SHIJIAN |grep $user |awk '{print $7}' |awk '{sum += $1};END {print sum}'`
echo "$SHIJIAN 账号$user buy总和$BUY" >> month.log
fi
done
done < user.list

#cat month.log.bak | grep 'buy总和" "' > month.log

【第四个】

#!/bin/bash
#每一天所有用户的buy总和

cat /dev/null > day.log
NOW=`date +%F`
for ((i=1;i<=1000;i++))
do
SHIJIAN=`date -d "2013-12-31 +$i day" +%Y-%m-%d`
if [ ${SHIJIAN} = ${NOW} ];then
break
fi
cat yuanbao.txt |grep $SHIJIAN &>/dev/null
if [ $? -eq 0 ] ; then
ZHI=`cat yuanbao.txt |grep $SHIJIAN |awk '{print $7}' |awk '{sum += $1};END {print sum}'`
echo "$SHIJIAN daily sum $ZHI" >> day.log
fi
done

【第五个】

#!/bin/bash
#每月所有用户的充值总和
cat /dev/null > month.log
NOW=`date +%Y-%m`
for ((i=1;i<=1000;i++))
do
SHIJIAN=`date -d "2013-12-01 +$i month" +%Y-%m`
if [ ${SHIJIAN} = ${NOW} ];then
break
fi
#cat yuanbao.txt |grep $SHIJIAN &>/dev/null
#if [ $? -eq 0 ] ; then
ZHI=`cat yuanbao.txt |grep $SHIJIAN |awk '{print $7}' |awk '{sum += $1};END {print sum}'`
echo "$SHIJIAN 每月所有用户充值总和是:$ZHI" >> month.log
#fi
done

Shell 脚本练习的更多相关文章

  1. 第一个shell脚本

    打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好. #!/bin/bash echo "Hello World !" &quo ...

  2. 使用C#给Linux写Shell脚本

    在这个逼格决定人格,鄙视链盛行的年头,尤其是咱们IT界,请问您今天鄙视与被鄙视的次数分别是多少?如果手中没有一点压箱的本事,那就只有看的份了.今天我们也要提升下自己的格调,学习些脑洞大开的东西,学完之 ...

  3. shell脚本规划化模板

    shell脚本规划化模板 Linux运维过程中,shell脚本是不可缺少的工具,但是每个运维人员编程的习惯都不一样,很多时候就是实现某个功能,写出来的脚本都是烂七八糟的.脚本必须规范化,应该从以后几个 ...

  4. Shell脚本编程30分钟入门

    Shell脚本编程30分钟入门 转载地址: Shell脚本编程30分钟入门 什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_t ...

  5. Linux Shell脚本逻辑操作符简介

    在写程序时,会用到条件判断,测试条件是否成立.很多时候,判断条件是多个的,这个时候需要用到逻辑操作符.shell脚本中常用的有哪些逻辑操作符呢? 1.逻辑与: -a 格式: conditon1 -a ...

  6. Linux shell脚本编程(三)

    Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...

  7. Linux shell脚本编程(二)

    Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...

  8. Linux shell脚本编程(一)

    Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...

  9. 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器

    本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...

  10. shell 脚本之循环使用 for while 详解

    任何一种编程语言中循环是比不可少的,当然 shell 脚本也少不了循环语句,包括 for 语句. while 语句.文中主要以实际用例来说明 for while 都有哪些常见的使用方法和技巧. 一.f ...

随机推荐

  1. Dynamics CRM On-Premise V9安装手记

    下载地址: https://download.microsoft.com/download/A/D/D/ADDD6898-4EFA-46FA-80B6-6FE9A3CDED63/CRM9.0-Serv ...

  2. vue用hbuilderX打包app嵌入h5方式云打包和遇到的问题

    vue用hbuilderX打包app嵌入h5方式云打包和遇到的问题 vue用hbuilderX打包app就可以了,不过有兼容性问题,转换rem的用不了,嵌入到app的webview里面变得很小了,另外 ...

  3. Angular ( 一 ) angular的安装

    1. 全局安装angular 脚手架工具 npm install -g @angular/cli 2. 打开到创建目录: 3. 创建项目 ng new my-app 4. 打开项目 5. 安装依赖 n ...

  4. 【WEB】带边框的网页页面实现

    前言 这是编程入学者尝试各种技术的备忘记录和自我激励,内容非常简单而单纯. 正文 成品 样式参考    http://tenhou.net/ 上边框 http://tenhou.net/img/f0t ...

  5. 利用mybatis-generator自动生成代码,发生:Plugin execution not covered by lifecycle configuration后解决方案

    1,报错信息 Plugin execution not covered by lifecycle configuration: org.mybatis.generator:mybatis-genera ...

  6. hashlib hmac configparser subprocess xlrd xlwt

    hashlib模块:加密 import hashlib # 基本使用 cipher = hashlib.md5('需要加密的数据的二进制形式'.encode('utf-8')) print(ciphe ...

  7. mysql window系统备份远程数据库到本地

    使用方法:创建test.bat文件,保存以下内容,修改配置后双击打开 @echo off REM 声明采用UTF-8编码 chcp echo. echo MySQL数据库备份脚本 echo. echo ...

  8. python操作pymysql数据库

    首先需要导入通过import pymysql导入数据库模块 已经创建好一个数据库test,数据库中有一个空表t,只有两个字段id int(5),name varchar(20) import pymy ...

  9. 算法(第四版)C# 习题题解——1.3

    写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 这一节内容可能会用到的库文件有 ...

  10. js之数组操作

    js之数组操作 前言 本文主要从应用来讲数组api的一些操作,如一行代码扁平化n维数组.数组去重.求数组最大值.数组求和.排序.对象和数组的转化等.(文章摘自:https://segmentfault ...