###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. C hashtable小例子

    参考链接:     http://blog.csdn.net/qinpanke/article/details/9171541

  2. python,魔法方法指南

    1.简介 本指南归纳于我的几个月的博客,主题是 魔法方法 . 什么是魔法方法呢?它们在面向对象的Python的处处皆是.它们是一些可以让你对类添加“魔法”的特殊方法. 它们经常是两个下划线包围来命名的 ...

  3. sonar的安装以及使用

    SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,下面将会介绍一下这个工具的安装.配置以及使用. 1. 简介 1.  sonar是什么 Sonar是一个用于代码质 ...

  4. 两个类似的ViewModel一个可以重写事件,另一个不能重写事件,是哪里出了错。

    答:继承错了,BaseViewModel里面是事件.

  5. Java HashMap工作原理及实现[转]

    原文:http://yikun.github.io/2015/04/01/Java-HashMap%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86%E5%8F%8A%E5%AE ...

  6. go语言中的运算符^,&

    一.^运算符 1.作为二元运算符 ^作二元运算符就是异或,包括符号位在内,相同为0,不相同为1 规则:1^1 =0, 0^0=0,1^0=1,0^1=1 事例: (1)0001 0100 ^ 0000 ...

  7. k64 datasheet学习笔记52---Universal Asynchronous Receiver/Transmitter (UART)

    1.前言 UART实现与外设或CPU的通信 2. UART概述 2.1基本特性 (1)Full-duplex operation (2)Standard mark/space non-return-t ...

  8. 虚拟机CentOS7下NAT模式的网络配置

    NAT模式 就是让Guest OS借助NAT(网络地址交换)功能,通过Host OS所在的网络来访问公网.也就是说,使用NAT模式可以实现Guest OS轻松访问互联网,可以访问宿主计算机所在网络的其 ...

  9. python3+requests库框架设计02-封装日志类

    首先我们先来实现日志的功能,日志可以使用python3自带logging模块,不会的可以百度一下相关文章,也可以看我另外一篇文章Python3学习笔记24-logging模块 在封装日志类前,我们需要 ...

  10. VC获取操作系统位数

    方法1,msdn 有相应的例子,代码贴出来给你看看 MSDN有相应Example! #include <windows.h> typedef BOOL (WINAPI *LPFN_ISWO ...