文本三剑客 grep sed awk

模式,选项。常用用法。

grep
作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行

模式:由正则表达式字符及文本字符所编写的过滤条件
vgrep [OPTIONS] PATTERN [FILE…]
grep root /etc/passwd
grep “$USER” /etc/passwd
grep ‘$USER’ /etc/passwd
grep `whoami` /etc/passwd

命令选项:

–color=auto: 对匹配到的文本着色显示
-v: 显示不被pattern匹配到的行
-i: 忽略字符大小写
-n:显示匹配的行号
-c: 统计匹配的行数
-o: 仅显示匹配到的字符串
-q: 静默模式,不输出任何信息
-A #: after, 后#行
-B #: before, 前#行
-C #:context, 前后各#行
-e:实现多个选项间的逻辑or关系 grep –e   ‘cat ’    -e     ‘dog’     file
-w:匹配整个单词
-E:使用ERE
-F:相当于fgrep,不支持正则表达式

命令常见用法:

1:在文件中搜索一个单词,命令会返回一个包含“match_pattern”的文本行

2017-12-03_210100

2:输出除之外的所有行 -v 选项:

2017-12-03_220809

3:只输出文件中匹配到的部分 -o 选项:

3

4:输出包含匹配字符串的行数 -n 选项:
4

5:grep递归搜索文件在多级目录中对文本进行递归搜索:
5

6:选项 -e 制动多个匹配样式:
6
7:在grep搜索结果中包括或者排除指定文件:
7

8:grep静默输出:
8

 

  sed
Stream EDitor, 行编辑器
sed是一种流编辑器,它一次处理一行内容。处理时,把当前 处理的行存储在临时缓冲区中,称为“模式空间”(pattern space ),接着用sed命令处理缓冲区中的内容,处理完成后 ,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环 。如果没有使诸如‘D’的特殊命令,那会在两个循环之间清空 模式空间,但不会清空保留空间。这样不断重复,直到文件末 尾。文件内容并没有改变,除非你使用重定向存储输出。
功能:主要用来自动编辑一个或多个文件,简化对文件的反复 操作,编写转换程序等
用法:
sed [option]… ‘script’ inputfile…
常用选项:
-n :不输出模式空间内容到屏幕,即不自动打印
-e: 多点编辑
-f :/PATH/SCRIPT_FILE : 从指定文件中读取编辑脚本
-r: 支持使用扩展正则表达式
-i.bak: 备份文件并原处编辑
script:

‘地址命令’ :
1    不给地址:对全文进行处理
2   单地址:
a:  #: 指定的行,$ :最后一行
b:   /pattern/ :被此处模式所能够匹配到的每一行
地址范围:
1      #,#
2    #,+#
3    /pat1/,/pat2/
#,/pat1/
~ :步进
1:    1~2 奇数行
2:    2~2 偶数行

编辑命令:
d: 删除模式空间匹配的行,并立即启用下一轮循环
p :打印当前模式空间内容,追加到默认输出之后
a [\]text :在指定行后面追加文本,支持使用\n实现多行追加
i [\]text :在行前面插入文本
c [\]text :替换行为单行或多行文本
w /path/somefile: 保存模式匹配的行至指定文件
r /path/somefile :读取指定文件的文本至模式空间中,匹配到的行后
=: 为模式空间中的行打印行号
!:模式空间中匹配行取反处理

s/// :查找替换,支持使用其它分隔符,s@@@ ,s###
v替换标记:
g: 行内全局替换
p: 显示替换成功的行
w /PATH/TO/SOMEFILE :将替换成功的行保存至文件中

高级编辑命令
P :打印模式空间开端至\n内容 ,并追加到默认输出之前
h: 把模式空间中的内容覆盖至保持空间中
H :把模式空间中的内容追加至保持空间中
g: 从保持空间取出数据覆盖至模式空间
G :从保持空间取出内容追加至模式空间
x: 把模式空间中的内容与保持空间中的内容进行互换
n: 读取匹配到的行的下一行覆盖至模式空间
N :读取匹配到的行的下一行追加至模式空间
d: 删除模式空间中的行
D :如果模式空间包含换行符,则删除直到第一个换行符的模式空间中的文本 ,并不会读取新的输入行,而使用合成的模式空间重新启动循环。如果模式空间不包含换行符,则会像发出
d命令那样启动正常的新循环

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/89467

(4)
晨曦晨曦
上一篇 2017-12-03 22:23
下一篇 2017-12-03 22:54

相关推荐

  • 马哥教育网络班第21期+第六周课程作业

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的1、以至少一个空白字符开头的行的行首加#; :%s@^[[:space:]]\+@#@   2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符; :%s@^[[:space…

    Linux干货 2016-08-22
  • 第十二周作业

    1、请描述一次完整的http请求处理过程;     1)建立或处理连接:接收请求或拒绝请求;     2)接收请求:接收来自于网络的请求报文中对某资源的一次请求的过程;接收请求的方式通常是并发访问响应模型;     3)处理请求:对请求报文进行解析,并获取请求的资源及请求方法等相关信息,解析后的报文…

    2017-03-27
  • httpd及https

    1、建立httpd服务,要求: (1) 提供两个基于名称的虚拟主机:     www1.stuX.com,页面文件目录为/web/vhosts/www1;错误日志为/var/log/httpd/www1/error_log,访问日志为/var/log/httpd/www1/access_log;   &nbs…

    2017-06-05
  • 网卡名称更改

    网卡是计算机进行网络通信的必须的设备。在CentOS6及其更早的系统中,网卡设备在系统中的名称命名为eth#(#为0,1,2…之类的数字)。在内核版本为3.0.0及其以后的Linux发行版中,网卡设备在系统中名称变得很长,变得不好识别以及不利于管理。为了更好的管理,我们将新的网络设备命名改为传统的命名。 网卡名称更改 在CentOS系统中操作 在RHEL7系…

    Linux干货 2016-11-23
  • Linux系统启动流程简图

    CentOS 系统启动流程: POST 加电自检   外部硬件是否都能存在和是否能正常工作ROM:COMS 芯片上的BIOS 基本输入输出 BOOT Sequence:   引导加载次序,也就磁盘上的MBR,bootloader 按次序查找各引导设备,第一人有引导程序的设备即为本次启动用到的设备。 bootloaderr:引导加载器,程序…

    2017-05-13