文本三剑客 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
下一篇 2017-12-03

相关推荐

  • MySQL or MariaDB 简介

    DBMS:数据库管理系统 RDBMS:关系型数据库管理系统    总之:他们都是一个数据管理程序;大多都是CS架构,都有专门的通信协议进行数据交换 关系模型:               表(行或者列):二维关系 设计范式:       &…

    Linux干货 2017-01-12
  • Linux第五周总结

    1、显示当前系统上root、fedora或user1用户的默认shell 2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello(); 3、使用echo命令输出一个绝对路径,使用gerp取出其基名;     扩展:取出其路径名 4、找出ifconfig命令结果中的…

    2017-07-30
  • 10月18日作业–hash,history

    1 生产环境发现一台服务器系统时间产生偏差,造成服务异常,请帮忙校正。 1、使用ntpdate对时间进行同步,然后hwclock -w;并再建立Crontab每小时进行一次时间同步。 2 生产有一个数据同步脚本需要执行很长时间,怎样做到无人值守,在管理工具退出的情况下,脚本依然能正常运行。 1、载光盘 2、进入/mnt/Packages 安装共享screen…

    Linux干货 2016-10-19
  • 磁盘配额

        磁盘配额可以限制指定账户能够使用的磁盘空间,这样可以避免因某个用户的过度使用磁盘空间造成其他用户无法正常工作甚至影响系统运行。在服务器管理中此功能非常重要,但对单机用户来说意义不大。 配置配额系统:     综述:     &nbs…

    Linux干货 2016-09-06
  • DNS服务器——如何解析公司域名

    DNS and Bind ·Sockets:          C/S                  Client:…

    Linux干货 2016-09-25
  • iptables详解

    iptables命令: iptables [-t table] {-A|-C|-D} chain rule-specification iptables [-t table] -I chain [rulenum] rule-specification iptables [-t table] -R chain rulenum rule-specificatio…

    Linux干货 2017-11-12