文本三剑客 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

相关推荐

  • N_28 linux基础知识

    1.计算机的组成
    2.linux的各发行版
    3.linux的哲学思想
    4.一些linux的基本命令
    5.帮助信息
    6.FHS

    2017-12-01
  • httpd服务——CentOS7

    httpd-2.4 新特性:      (1)MPM支持运行为DSO机制;以模块形式按需加载      (2)event MPM生产环境可用      (3)异步读写机制      (4)支持每个模块…

    Linux干货 2016-10-12
  • LNAMP Shell 部署脚本

    LNAMP Shell 部署脚本 学习总结: 这个脚本,早期是出于对个人学习Shell的总结而写,应该有些年头了,目前也在一边学马哥视频的基础上陆续完善,10月初才完成LNAMP环境的分离式部署,并减少整个Shell脚本各部分的依赖关系。 我是网络班13期高级班的学员,因个人做了几年Linux运维,所以目前整个高级班的课程,我是跳着看了集群(LVS + Ke…

    Linux干货 2015-10-27
  • linux函数和数组定义

    函数介绍:    函数function 是由若干条shell 命令组成的语句块,实现代码重用和模块化编程。    它与shell 程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell 程序的一部分。    函数和shell 程序比较相似,区别在于:   …

    Linux干货 2017-04-02
  • 马哥教育网络班N22期+第8周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥:是连接两个局域网的基于MAC地址数据存储转发设备,工作于数据链路层集线器:所有端口处于同一个广播域和冲突域中,带宽共享,工作于物理层二层交换机:多端口网桥,一个端口一个冲突域,默认所有端口位于同一个广播域中,可以划分vlan,隔离广播域,带宽独享三层交换机:具有路由功能的二…

    Linux干货 2016-10-19
  • shell-在线翻译脚本

            在linux过程中难免会碰到陌生的单词,此时不得不打开翻译软件或网页请求翻译,但这样切换界面比较麻烦,也浪费时间;         今天头脑发热,尝试着在网上找命令行翻译工具,但无果;…

    2017-02-19