1.while read
-
这个是逐行读取文本文件。 有点跟for 循环类似
-
应用案例:
#!/bin/bash
lj="/opt/aspire/product/mopush/apache-tomcat-6.0.35/bin/servers/moxpps/log/mmwiard"
cd $lj
while read province
do
zcat mmwiard.log.201804*.bak.gz|grep -i $province |grep "GPRS 流量资源"|wc -l >> /opt/aspire/product/mopush/shell/1.txt
zcat mmwiard.log.201805*.bak.gz|grep -i $province |grep "GPRS 流量资源"|wc -l >> /opt/aspire/product/mopush/shell/2.txt
cat mmwiard.log.201805*.bak|grep -i $province |grep "GPRS 流量资源"|wc -l >> /opt/aspire/product/mopush/shell/3.txt
done < /opt/aspire/product/mopush/shell/provincelist2
2.如何使用vim 进行批量注释脚本和去除批注
背景: 最近在linux下配置邮件服务, 遇到一个问题如何批量注释多行, 我找到一个很好的解决方法,学会此方法,效率提高不只一点点啊.
1、ctrl+v使用方向键上下选择范围;
2、shift+i进入编辑模式,添加“#”。随后按esc退出(也可理解为运行批量添加);此时批注已加好
批量删除添加的注释行.
ctrl+v使用方向键上下选择去除批注的范围,按“x”;
3.使用vim 如何整行替换字段
进去 末行模式
:%s#a#c#g 就是把a 替换成c
4.判断一个数值是否存在
[root@king ~]# [ "`echo "123"| sed -r 's#[^0-9]##g'`" = "123" ] && echo 1 || echo 0
1
[root@king ~]# [ "`echo "abc"| sed -r 's#[^0-9]##g'`" = "abc" ] && echo 1 || echo 0
0
[root@king ~]# [ "`echo "123abc"| sed -r 's#[^0-9,a-z]##g'`" = "123" ] && echo 1 || echo 0
0
[root@king ~]# [ "`echo "abc123"| sed -r 's#[^0-9,a-z]##g'`" = "123" ] && echo 1 || echo 0
0
[root@king ~]# [ "`echo "abc123"| sed -r 's#[^a-z]##g'`" = "123" ] && echo 1 || echo 0
0
[root@king ~]# [ "`echo "abc123"| sed -r 's#[^0-9]##g'`" = "123" ] && echo 1 || echo 0
1