文档章节

awk 常用方法

 惊浪
发布于 2015/02/10 16:13
字数 396
阅读 123
收藏 16
点赞 0
评论 0

1、字符替换

echo "a b c 2011-11-22 a:d" | awk '{gsub(/[ab]/,"",$0);print $0}' 使用正则语法把a或b字符替换成空字符

$0指取当前行作为字符串处理 ,awk命令默认使用空格字符分隔处理

注意gsub的返回结果是 替换次数,  $0被替换完后还是存放在$0中,下一命令行print可以取正确结果

2、字符分隔

dstat| awk -F "[ |]+" 使用正则语法分隔处理行,把空格或|字符都当前当前行处理

3、日期打印

echo "a b c 2011-11-22 a:d" | awk '{print strftime("%y-%m-%d %T",systime());}'

输出结果为15-02-10 16:02:19,systime()为取系统当前时间,有或没有结果都一样,strftime()默认取当前时间

4、if else

dstat| awk -F "[ |]+" '{if(match($10, "M")>=1){gsub(/[MkB]/,"",$10);recv+=$10;}else if(match($10, "k")>=1){gsub(/[MkB]/,"",$10);recv+=$10/1024;}; print recv}'

match为匹配字符串是否出现

5、命令换行 使用\,与C++语法一样

#!/bin/bash
dstat| awk -F "[ |]+" 'BEGIN{max=0;count=0;curr=300}{ \
if(match($0, "total")<=1 && match($0, "idl")<=1){count++;sysc+=$1+$2;max=(($1+$2) >max ?($1+$2):max);\
if(match($10, "M")>=1){gsub(/[MkB]/,"",$10);recv+=$10;}else if(match($10, "k")>=1){gsub(/[MkB]/,"",$10);recv+=$10/1024;} \
if(match($11, "M")>=1){gsub(/[MkB]/,"",$11);send+=$11;}else if(match($11, "k")>=1){gsub(/[MkB]/,"",$11);send+=$11/1024;} \
};if(count%curr==0){ \
{now=strftime("%y-%m-%d %T",systime());}{print now,"sysc=",sysc/curr,"Max=",max,"recv=",recv/curr,"send=",send/curr >> "/usr/local/nds/log/dstat2015.log";fflush(stdout)};sysc=0;max=0;recv=0;send=0 }}'

© 著作权归作者所有

共有 人打赏支持
粉丝 16
博文 28
码字总数 17864
作品 0
福州
程序员
如何使用 awk 和正则表达式过滤文本或文件中的字符串

当我们在 Unix/Linux 下使用特定的命令从字符串或文件中读取或编辑文本时,我们经常需要过滤输出以得到感兴趣的部分。这时正则表达式就派上用场了。 什么是正则表达式? 正则表达式可以定义为...

开元中国2015 ⋅ 2016/07/19 ⋅ 0

linux取IP地址的多种方法

对于很多linux初学者,还有很多基础面试时,都会可能遇到需要提取IP地址的问题,下面我总结了多种取IP址的方法,希望大家能学到知识 如下图,我需要提取出eth0的IP地址 方法一:使用awk实现 ...

街角守望妳 ⋅ 2017/03/16 ⋅ 0

grep、sed、awk和正则表达式

grep SYNOPSIS 常用选项 -A 显示改行和改行后的内容-B 显示改行和改行前的内容-C 显示该行和改行前后的内容-R/-r 递归,匹配目录-d 对指定目录进行相应的操作,read:读取目录下所有文件,r...

yr_linux运维 ⋅ 2017/12/26 ⋅ 0

awk学习笔记

awk的工作流程: 将文件的一行读到内存,然后按分隔符将该行进行分段,其默认的分隔符是空格和TAB。 常用格式1: awk /pattern/ {command1;command2.....} file 用法1 指定分隔符 用-F'分隔符...

香胖 ⋅ 2015/12/04 ⋅ 0

五年屌丝运维工作shell精华

屌丝运维常用shell 列出你最常用的10条shell history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head history | awk '{a[$4]++}END{for(i in a){print a[$i] " " i......

a591244761 ⋅ 2014/07/03 ⋅ 0

Shell脚本之awk文本编辑器语法(一)

AWK ——是一种用于处理文本的编程语言工具。 英文原义:Aho、Weinberger、Kernighan 中文释义:三位创造者Aho、Weinberger和Kernighan统称 AWK 在很多方面类似于 shell 编程语言,尽管 AWK ...

wuwei5460 ⋅ 2013/01/13 ⋅ 0

Linux常用指令

#============常用命令================================ ======删除0字节文件 find -type f -size 0 -exec rm -rf {} ; ======查看进程 按内存从大到小排列 ps -e -o "%C : %p : %z : %a"|s......

黑白运营 ⋅ 2017/06/12 ⋅ 0

sed,awk,grep教程

sed sed是一种非交互式的流编辑器,可动态编辑文件。所谓的非交互式是说,sed和传统的文本编辑器不同,并非和使用者直接互动,sed处理的对象是文件的数据流。sed的工作模式是,比对每一行数据...

stone_ ⋅ 2016/06/14 ⋅ 0

shell常用语法案例

一、 正则表达式: 正则表达式(或称Regular Expression,简称RE)就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。 该模式描述在查找文字主体时待匹配的一个或...

疯子的梦 ⋅ 2017/05/27 ⋅ 0

shell常用集锦

a=$( expr 'helloworld20140501.txt' : '.([0-9]{8}).' )echo $alinux shell 中可以将命令的结果赋值给变量,$(命令)这种格式将返回命令执行后的结果字符串上面命令执行后,变量a的值是20140...

jims ⋅ 2016/10/11 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

存储,对比私有云和公有云的不同

导读 说起公共存储,很难不与后网络公司时代的选择性外包联系起来,但尽管如此,它还是具备着简单和固有的可用性。公共存储的名字听起来也缺乏专有性,很像是把东西直接堆放在那里而不会得到...

问题终结者 ⋅ 昨天 ⋅ 0

C++难点解析之const修饰符

C++难点解析之const修饰符 c++ 相比于其他编程语言,可能是最为难掌握,概念最为复杂的。结合自己平时的C++使用经验,这里将会列举出一些常见的难点并给出相应的解释。 const修饰符 const在c...

jackie8tao ⋅ 昨天 ⋅ 0

聊聊spring cloud netflix的HystrixCommands

序 本文主要研究一下spring cloud netflix的HystrixCommands。 maven <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-clo......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部