###sed###

查询

1创建测试文件

cat>person.txt<<EOF
> 101,oldboy,CEO
> 102,zhangyao,CTO
> 103,Alex,COO
> 104,yy,CFO
> 105,feixue.CIO
> EOF

2查询单行文本

2连续查询多行文本

3显示出文件包含oldboy的行到包含104的行

等于grep  'oldboy'  person.txt

^104以104开头更加精确

4过滤多个字符串

7查询指定多行 使用;分号

增加

1增加单行文本

#sed  '3a 103.5,Lee,UFO'  person.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
103.5,Lee,UFO
104,yy,CFO
105,feixue.CIO
# sed  '3i 103.5,Lee,UFO'  person.txt
101,oldboy,CEO
102,zhangyao,CTO
103.5,Lee,UFO
103,Alex,COO
104,yy,CFO
105,feixue.CIO

2增加多行文本

# sed '$a new,new,new,' person.txt

$a 最后一行
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue.CIO
new,new,new,
# sed '2a 106,xiaoyu,CXO\n107\n108\n109' person.txt

101,oldboy,CEO
102,zhangyao,CTO
106,xiaoyu,CXO
107
108
109
103,Alex,COO
104,yy,CFO
105,feixue.CIO

一般追加到行位用的cat>person.txt<<EOF

追加到某一行就用sed  i  a

删除

sed   '/^$/d'   person.txt

删除空行

sed   -n  '/^$/!p'  person.txt

/^$/p显示空行加!排除取反

sed   '$d'    person.txt

删除最后一行
sed   '$!d'   person.txt

删除不是最后一行

替换

文本替换

测试

变量替换

这里要用双引号  单引号不执行

# x=oldboy
# y=oldgirl
# sed  "s#$x#$y#g"  person.txt
101,oldgirl,CEO

102,zhangyao,CTO
103,Alex,COO

104,yy,CFO

105,feixue.CIO

反向引用

扩展

回顾

###awk####

执行过程 按照下面的命令来理解

主要讲不同的模式或者说是条件

创建环境

# mkdir -p /server/files

#cat>>/server/files/reg.txt<<EOF

Zhang Dandan 41117397 :250:100:175
Zhang Xiaoyu 390320151 :155:90:201
Meng Feixue 80042789 :250:60:50
Wu Waiwai 70271111 :205:80:75
Liu Bingbing 41117483 :250:100:175
Wang Xiaoai 3515064655 :50:95:135
Zi Gege 1986787350 :250:168:200
Li Youjiu 918391635 :175:75:300
Lao Nanhai 918391635 :205:100:175

EOF

# awk '/Xiaoyu/' reg.txt  过滤出来

Zhang Xiaoyu   390320151  :155:90:201

# awk '/Xiaoyu/{print $1,$2,$3}' reg.txt 花括号前面就是条件或者说模式

Zhang Xiaoyu 390320151

精确一点就是

# awk '$2~/Xiaoyu/{print $1,$2,$3}' reg.txt

$2~/Xiaoyu/第二列包含xiaoyu

$0~  ===/Xiaoyu/

# awk '$3~/^41/' reg.txt

# awk '$3~/^41/{print $1,$2,$3}' reg.txt

# awk '$3~/[15]$/' reg.txt

# awk '$3~/[15]$/{print $1,$2}'  reg.txt

$0 就是所有列

# awk '{gsub(/:/,"$",$4);print}' reg.txt

特殊模式BEGIN和GND

i每加1就显示出来

。。

END 显示最后的结果

awk数组统计

############

最终计算

或者用awk中for循环for (pol in h)==pol随便写就是个变量

in就是去哪里  awk循环里h这个位置是数组的名字

会自动打开h成为数组名字

以后可以把它当做一个公式用$2用那一列自己选比如说第一列是ip地址

 作业 

awk '/Failed/' secure-20161219 |awk '$11~/[0-9].[0-9].[0-9].[0-9]/{i[$9" "$11]=i[$9" "$11]+1}END{for(ip in i) print ip"\t"i[ip]}'

四.awk、sde深度讲解的更多相关文章

  1. webpack与browser-sync热更新原理深度讲解

    本文首发于CSDN网站,下面的版本又经过进一步的修订.原文:webpack与browser-sync热更新原理深度讲解本文包含如下内容: webpack-hot-middleware EventSou ...

  2. Google资深工程师深度讲解Go语言完整教程

    资源获取链接点击这里 欢迎大家来到深度讲解Go语言的课堂.本课程将从基本语法讲起,逐渐深入,帮助同学深度理解Go语言面向接口,函数式编程,错误处理,测试,并行计算等元素,并带领大家实现一个分布式爬虫的 ...

  3. 第四节:详细讲解Java中的类和面向对象思想

    前言 大家好,给大家带来详细讲解Java中的类和面向对象思想的概述,希望你们喜欢 类和面向对象 在Java中怎样理解对象,创建对象和引用:什么是引用,对于基础学习的同学,要深入了解引用.示例:Stri ...

  4. 四个例子实战讲解.htaccess文件rewrite规则(转)

    一.防盗链功能 1 2 3 4 RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://(.+.)?mysite.com/ [NC] Rewrite ...

  5. js闭包深度讲解

    js的闭包是学习js过程中的重点,但是不得不说也是一个难点呀,其涉及到了js中的很多概念.我在学习js中也遇到了很多问题,这篇文章算是一个对闭包的总结,文章主要内容为闭包的基本知识点与对其理解上的一些 ...

  6. 新鲜出炉!JAVA线程池精华篇深度讲解,看完你还怕面试被问到吗?

    前言 前两天趁着假期在整理粉丝私信的时候看到一个粉丝朋友的私信跟我说自己现在正在复习准备面试,自己在复习到线程池这一块的时候有点卡壳,总感觉自己差了点什么.想要我帮他指导一下.这不趁着假期我也有时间我 ...

  7. 深度讲解VIEWPORT和PX是什么?移动端单位px,em,rem

    刚开始接触移动页面重构,是不是很迷惑应该按照多大的尺寸制作?320.640还是720?按照640的设计稿重构完页面,是不是还需要写其他尺寸来适配不同的屏幕大小?—— 这源于对viewport和px的不 ...

  8. Android IOS WebRTC 音视频开发总结(四七)-- 深度解读国内首届WebRTC大会背后的真相

    本文主要解读国内首届WebRTC大会背后的真相,文章来自博客园RTC.Blacker,支持原创,转载必须说明出处,更多详见www.rtc.help -------------------------- ...

  9. Nginx详解二十四:Nginx深度学习篇之灰度发布

    实战场景 - 灰度发布 灰度发布的作用:按照一定的关系区别,分部分的代码进行上线,使代码的发布能平滑过渡上线实现方式: 1.用户的信息cookie等信息区别 2.根据用户的IP地址 安装memcach ...

随机推荐

  1. node里面的buffer理解

    node提供了专门读写文件的模块,文件内容都是2进制存放在内存中的 node读取文件的结果都是16进制,那么你要学会进制转换,二进制0b开头 ,八进制0开头,十六进制0x 基础知识: 1字节=8bit ...

  2. day 10 - 1 函数进阶

    函数进阶 命名空间和作用域 命名空间 命名空间 有三种内置命名空间 —— python解释器 就是python解释器一启动就可以使用的名字存储在内置命名空间中 内置的名字在启动解释器的时候被加载进内存 ...

  3. 再测简单的JSP---JSP和Serlet的关系

    <Java Web入门经典.pdf>中第3章 末尾:, 创建一个web动态项目SqlServerTest,创建一个JSP文件index.jsp ,启动服务器 浏览器输入  http://l ...

  4. DEX、ODEX、OAT文件&Dalvik和ART虚拟机

    https://www.jianshu.com/p/389911e2cdfb https://www.jianshu.com/p/a468e714aca7 ODEX是安卓上的应用程序apk中提取出来的 ...

  5. ht学习流程

    http://www.hightopo.com/blog/461.html数百个 HTML5 例子学习 HT 图形组件 掌握 HT 基础: 1.先入门手册 http://www.hightopo.co ...

  6. 20165337岳源 第四次实验 Android开发

    1.实验要求: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)>第二十四章 参考http://www.cnblogs.com ...

  7. google 开源项目阅读计划

    1. glog 2. gflags 3. carto 4. ...

  8. 1-OSI七层模型详解

    1.网络协议种类 市面上存在4,5,7层协议. 1.1 国际标准化组织ISO发布的OSI 7层协议模型(即OSI开放式互联参考模型),是概念性模型. 1.2 TCP/IP是一种实践类的模型,已成为行业 ...

  9. X86架构

    在接触BIOS的时候,都需要对PC架构有一定的认知.目前的PC架构绝大多数都是Intel的X86架构,貌似也是因为INTEL的这个X86架构早就了目前INTEL如日中天的地位. 废话不多说,X86架构 ...

  10. 【转】Leveldb源码分析——1

    先来看看Leveldb的基本框架,几大关键组件,如图1-1所示. Leveldb是一种基于operation log的文件系统,是Log-Structured-Merge Tree的典型实现.LSM源 ...