一些shell脚本实例
在群里也混了不少时间了.总结一些实例
#统计QQ消息里面某个用户改名字的记录
# awk -f
# 聊改名字记录
#特殊例子 例如
#2013-11-28 9:23:56 北京-AA-Vip<123456789@qq.com>
#2013-11-28 9:23:42 中山-BB(10570765)
/^[-]+ [-:]+ [<(].*[>)] ?$/{
next
}
/^[--]+ [-:]+ .*[<(].*[>)] ?$/{
QQ=gensub(/^[--]+ [-:]+ [^(<]*[(<]([^)>]*)[)>]/,"\\1",$)
NAME=gensub(/^[--]+ [-:]+ ([^<(]*)[<(].*/,"\\1",$)
if(A[QQ]==""){
A[QQ]=NAME
next
}
if(QQ in A){
if(A[QQ]!=NAME){
print QQ" :\t\t"A[QQ]," ==> ",NAME
A[QQ]=NAME
}
}
}
0,1,2,10,22,00,01,2,3,33
得出下面的结果
00,01,02,10,22,00,01,02,03,33
方法1:
echo '0,1,2,10,22,00,01,2,3,33' | awk -vRS=, '{printf("%02d,",$1)}END{printf("\b")}'
方法2:
echo "0,1,2,10,22,00,01,2,3,33" | awk -vRS=, 'BEGIN{a=""}{b=sprintf("%02d",$0);a=a?a "," b:b;}END{print a}'
求数值N以内的质数和
awk -vmax= 'BEGIN{nomax=0;yesmax=0;for(i=2;i<=max;i++){for(j=2;j<=sqrt(i);j++){if(i%j==0) break};if(j>sqrt(i)) yesmax+=i;else nomax+=i;}; print "非质数和=" nomax " 质数和=" yesmax}'
有关字符串截取总结
PS:大叔总结的很是经典,特在此记录
看大键盘,$是字符串调用,左面的#就是左面操作,右面的%就是右面操作
一个符号是最小匹配,两个符号是最大匹配
例:
tsbill:/work21>a="1/2/3/4/5"
tsbill:/work21>echo ${a#*/}
///
tsbill:/work21>echo ${a##*/} tsbill:/work21>echo ${a%/*}
1/2/3/4
tsbill:/work21>echo ${a%%/*}
1
有关grep中正则表达式和通配符的注意事项
在文本过滤工具里,都是用正则表达式,比如像awk,sed,等,是针对文件的内容的。 使用正则的时候需要添加-E选项 而通配符多用在文件名上,比如查找find,ls,cp,等等。
一些shell脚本实例的更多相关文章
- 分享7个shell脚本实例--shell脚本练习必备
概述 看多shell脚本实例自然就会有shell脚本的编写思路了,所以我一般比较推荐看脚本实例来练习shell脚本.下面分享几个shell脚本实例. 1.监测Nginx访问日志502情况,并做相应动作 ...
- shell脚本实例,通向shell脚本大师的必经之路
概述 读书百遍其义自见,shell脚本也是,只要例子看得多了,自然就知道怎么写了.这里主要整理了20几个例子,因为内容比较多,所以分了几次来做介绍了.下面的实例最好先自己思考怎么去实现,然后再看下实现 ...
- shell脚本实例-系统监控
shell脚本监控网站并实现邮件.短信报警shell进程监控脚本(发送邮件报警)Shell脚本监控服务器在线状态和邮件报警的方法 http://www.jbxue.com/jb/shell/ 11. ...
- shell脚本实例
备注:一些与传递给shell的参数相关的变量:$# 命令行参数的个数$? 调用命令的返回值$$ 当前进程的进程号$! 最后一个后台命令的进程号$0 命令行的第一个参数,也就是命令名$n 命令行的第n个 ...
- shell脚本实例一,移动文件夹中大于2000B的文件到另一个文件夹
shell脚本能帮我们简化linux下的一些工作,现在有个需求,把TMPA文件夹下大于2000B的文件都移动到TMPB下 #! /bin/bash function movefiles() { ` d ...
- shell脚本实例一
一. 什么是shell 脚本时一种解释性语言: shell脚本保存执行动作: 脚本判定命令的执行条件 脚本来实现动作的批量执行.二.如何创建 vim test.sh ##shell脚本一般都 ...
- shell脚本实例-mysql多机部署
今天我给大家分享shell 安装mysql 多机部署的实例,本次实验是基于各个主机的公钥已经配置好了,如果还不会推送公钥的同学,可以看看我以前写的文章,那里面有写推公钥的实例,mysql 多机部署一般 ...
- shell脚本实例-菜单样例
1.9.1 实例需求 用户在进行Linux系统管理的过程中,经常需要用到查看进程的信息.用户的信息等常用的功能.本例针对这一需求,使用shell编程实现基本的系统管理 功能.通过本程序,可以按照要求实 ...
- shell脚本实例(2)
1.传给脚本一个参数:目录,输出该目录中文件最大的,文件名和文件大小 #!/bin/bash if [ $# -ne 1 -o ! -d $1 ];then echo "Args is er ...
- 【shell脚本实例】一个恶作剧—— kill掉占用CPU较高的matlab进程
我们实验室有台服务器,博士们在服务器上跑MATLAB,基本都是4核都是超过95%的CPU占用,想了个恶作剧的shell 定时kill掉MATLAB程序,是不是很邪恶啊,哈哈~~~ 不过我只是干过一次 ...
随机推荐
- E - Trees on the level
Trees on the level Background Trees are fundamental in many branches of computer science. Current ...
- Android(java)学习笔记103:Map集合的获取功能
package cn.itcast_01; import java.util.Collection; import java.util.HashMap; import java.util.Map; i ...
- Android(java)学习笔记79:java中InetAddress类概述和使用
要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机. 在TCP/IP协议中,这个标识号就是IP地址. 那么,我们如果获取和操作I ...
- MAC mysql安装及设置
MAC下安装MYSQL有两种方式,一种为压缩包形式 另一种为.dmg文件安装包 . 首先先介绍压缩包形式的安装方法: 去MySql官网下MySQL classic版mysql-5.1.54-osx ...
- oracle 10g升级到11g
Linux 上Oracle RAC 10g 升级到 Oracle RAC 11g 了解如何在 Oracle Enterprise Linux 5 上逐步将 Oracle RAC 10g 第 2 版升级 ...
- CF Tanya and Postcard
Tanya and Postcard time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- 双向BFS
转自“Yuan” 如果目标也已知的话,用双向BFS能很大提高速度 单向时,是 b^len的扩展. 双向的话,2*b^(len/2) 快了很多,特别是分支因子b较大时 至于实现上,网上有些做法是用两个 ...
- 随机生成MyEclipse注册码
package com.registercode; import java.io.BufferedReader;import java.io.IOException;import java.io.In ...
- 使用Xpath从网页中获取数据
/// <summary> /// 从官方网站中抓取产品信息存放在本地数据库中 /// </summary> /// <returns></returns&g ...
- java源码研究--List中的set和add方法区别
在处理一道题目是,发现他们使用了List 中的set 方法,这个方法我平时很少用到,今天来研究一下,set和add的区别 add(int index,Object obj)方法与set(int ind ...