shell常用命令详解
shell
shell常用命令详解
shell
AWK简介AWK是一种优良的文本处理工具 :可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它 具备了一个完整的语言所应具有的几乎所有精美特性。实际上 AWK 的确拥有自己的语言:AWK 程序设计语言, 三位创建 者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数 据、对输入执行计算以及生成报表,还有无数其他的功能。
尽管操作可能会很复杂,但命令的语法始终是: awk '{pattern + action}'
内置变量 FNR 当前文件中的记录号
NR 到目前为止记录数 FS 输入域分隔符,默认为一个空格
RS 输入记录分隔符 NF 当前记录里域个数 OFS 输出域分隔符
shell
AWK用法-简单列输出awk -F “|” {print $n} -F: 表示分隔符,多个分隔符可以用-F [] 表示,不加-F默认空格分割 N:表示第几列,全列输出用$0
shell
AWK流程控制-BEGIN,END在awk 中两个特别的表达式,BEGIN和END,提供BEGIN和END的作用是给程序 赋予初始状态和在程序结束之后执行一些扫尾的工作。任何在BEGIN之后列出的 操作(在{}内)将在awk开始扫描输入之前执行,而END之后列出的操作将在扫描 完全部的输入之后执行。因此,通常使用BEGIN来显示变量和预置(初始化)变 量,使用END来输出最终结果 例:统计各个业务发送短信条数 awk 'BEGIN{FS="|";OFS="\t";print "service_type","send_count"} {a=$17;op[a]++;} END{for(a in op)printf("%s\t%d\n",a,op[a])}' submit_ext_20140905.log
shell
AWK流程控制-if语句格式: if(表达式)
语句1else 语句2
If(表达式1) 语句1 else if(表达式2) 语句2 else if(表达式n) 语句n else 语句n+1
shell
AWK流程控制-while,do while语句格式: while(表达式)
语句例:awk -F”|” {while($1>2)print $0}
do{ 语句 }while(表达式) 例:awk -F”|” {do{print $0}while($1>2)}
shell
AWK流程控制-for语句格式: for(初始表达式;终止条件;步长表达式)
{语句}例:awk -F”|” {for(i=0;i<=NF;i++)printf(“%s\n”,$i)}
shell
内置函数-内置字符串函数实例应用cat ip.conf 172.25.3.15 172.25.3.16 172.25.3.17 172.25.3.19 172.25.3.13 172.25.3.18 172.25.3.20 172.25.3.24 172.25.3.23 gsub awk ‘{gsub($3,“mqq2005”);print $0}’ ip.conf #某列全部替 换 awk ‘{gsub(“mqq”,“abc”,$3);print $0}’ ip.conf #某列部分 替换 index awk ‘{print index($3,“op”)}’ ip.conf #显示密码列”op”第一 次出现的位置 length awk ‘{print length($2)}’ ip.conf #求用户列长度 alexsha mqq_op@2013h1 alexsha mqq_op@2013h1 alexsha mqq_op@2013h1 alexsha mqq_op@2013h1 alexsha mqq_op@2013h1 alexsha mqq_op@2013h1 alexsha mqq_op@2013h1 alexsha mqq_op@2013h1 alexsha mqq_op@2013h1 match awk ‘{print match($1,“15”)}
’ ip.conf #找到第一列 出现15的位置,找不到则显示0
splitawk ‘{split($1,op,“.”);print op[1],op[2],op[3]}’ ip.conf #分割ip sub 和gsub类似,区别:gsub是全部替换,相当于sed ‘s//g’ ;sub是替换第一次出现,相当于sed 's//‘ substr awk ‘{print substr($2,2,4)}’ ip.conf #显示第2列从第2 个位置开始的后4位 sprintf awk ‘{a=sprintf(“%s|%s|%s”,$1,$2,$3);print a}’ ip.conf #格式转换
shell
内置函数-内置时间函数函数名 mktime( YYYY MM DD HH MM SS[ DST]) 说明 生成时间格式 格式化时间输出,将时间戳转为 时间字符串,具体格式,见下 表 得到时间戳,返回从1970年1月1 日开始到当前时间(不计闰年) 的整秒数
strftime([format [, timestamp]])
systime()
创建指定时间(mktime,strftime使用) awk 'BEGIN{tstamp=mktime("2014 09 09 17 32 12");print strftime("%c",tstamp);}'
awk 'BEGIN{tstamp1=mktime("2014 09 09 17 32 12");tstamp2=mktime("2014 09 01 00 00 00");print tstamp1-tstamp2}'
shell
内置函数-内置时间函数格式 %a %A %b %B %c %d %D %e %H %I %j %m %M %p %S %U %w %W %x %X %y 描述 星期几的缩写(Sun) 星期几的完整写法(Sunday) 月名的缩写(Oct) 月名的完整写法(October) 本地日期和时间 十进制日期 日期 08/20/99 日期,如果只有一位会补上一个空格 用十进制表示24小时格式的小时 用十进制表示12小时格式的小时 从1月1日起一年中的第几天 十进制表示的月份 十进制表示的分钟 12小时表示法(AM/PM) 十进制表示的秒 十进制表示的一年中的第几个星期(星期天作为一个星期的开始) 十进制表示的星期几(星期天是0) 十进制表示的一年中的第几个星期(星期一作为一个星期的开始) 重新设置本地日期(08/20/99) 重新设置本地时间(12:00:00) 两位数字表示的年(99)
shell
内置函数-一般函数函数 说明 用同一个带字符串值的 Expression 参数来关闭由 print 或 printf 语句打开的或调用 getline 函数打开的文件或管道。如果文件或 管道成功关闭,则返回 0;其它情况下返回非零值。如果打算写 一个文件,并稍后在同一个程序中读取文件,则 close 语句是必 需的。 执行 Command 参数指定的命令,并返回退出状态。 从来自 Expression 参数指定的命令的输出中通过管道传送的流中 读取一个输入记录,并将该记录的值指定给 Variable 参数指定的 变量。如果当前未打开将 Expression 参数的值作为其命令名称的 流,则创建流。创建的流等同于调用 popen 子例程,此时 Command 参数取 Expression 参数的值且 Mode 参数设置为一 个是 r 的值。只要流保留打开且 Expression 参数求得同一个字符 串,则对 getline 函数的每次后续调用读取另一个记录。如果未 指定 Variable 参数,则 $0 记录变量和 NF 特殊变量设置为从流 读取的记录。 从 Expression 参数指定
的文件读取输入的下一个记录,并将 Variable 参数指定的变量设置为该记录的值。只要流保留打开且 Expression 参数对同一个字符串求值,则对 getline 函数的每次 后续调用读取另一个记录。如果未指定 Variable 参数,则 $0 记 录变量和 NF 特殊变量设置为从流读取的记录。 将 Variable 参数指定的变量设置为从当前输入文件读取的下一个 输入记录。如果未指定 Variable 参数,则 $0 记录变量设置为该 记录的值,还将设置 NF、NR 和 FNR 特殊变量。
close( Expression ) system(Command )
Expression | getline [ Variable ]
getline [ Variable ] < Expression
getline [ Variable ]
shell
内置函数-一般函数
shell
经典案例-邮件表格输出(格式转换)
shell
经典案例-数组累加举例:求当前文件里每个业务代码的短信下发量
效率很低最老土的方法: Awk –F”|” ‘{a=$17;if(length($17)!=0)print $17}’ submit_ext_20140913.log|sort|uniq -c
最有效率的方法: Awk –F”|” ‘{a=$17;if(length($17)!=0)op[a]++ …… 此处隐藏:2775字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [公文资料]市场营销专员岗位职责
- [公文资料]综合部经理岗位职责
- [公文资料]会计助理岗位职责
- [公文资料]林业站站长职责
- [公文资料]菜品研发部岗位职责
- [公文资料]街道综治办工作职责
- [公文资料]酒店前台的工作职责
- [公文资料]销售部经理岗位职责
- [公文资料]工程部副经理岗位职责
- [公文资料]手术室护士工作职责
- [公文资料]银行客户经理职责
- [公文资料]汽车4s店市场专员职责
- [公文资料]服装店长工作职责
- [公文资料]采购总监岗位职责
- [公文资料]大学行政秘书工作职责
- [公文资料]学校财务人员岗位职责
- [公文资料]财务统计员岗位职责
- [公文资料]物业工程主管工作职责
- [公文资料]公司后勤工作职责
- [公文资料]采矿工程师岗位职责
- 门面出租合同样板(门面出租的合同)
- 自用房屋租赁合同 自住房租房合同(汇总
- 最新酒店劳动合同管理制度(11篇)(酒店
- 2025年无产权车库买卖合同实用(14篇)(
- 建筑工程农民工劳动合同十五篇(通用)(
- 最新深圳标准劳动合同 深圳劳动合同如
- 解除劳动合同通知书(实用6篇)(解除劳动
- 2025年二手房屋买卖合同范围精选(二十
- 最新融资贷款居间合同大全(22篇)(融资
- 2025年个人二手房屋买卖合同协议书四篇
- 2025年果树苗木买卖合约书 签订果树苗
- 广东省劳动合同书填写(21篇)(广东省劳
- 最新餐饮行业没有劳动合同 劳动法餐饮
- 农村土地买卖合同(汇总21篇)(农村土地
- 最新房屋转租合同模版21篇(通用)(标准
- 2025年进口合同号查询五篇(大全)(进口
- 农村建房包工包料合同(通用8篇)(农村建
- 2025年安装监控合同协议书(15篇)(2025
- 2025年企业租赁经营合同(模板9篇)(2025
- 最新郊区土地租赁合同(优质23篇)(最新




