grep

grep命令主要对文本的(正则表达式)行基于模式进行过滤
作用: 文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查,打印匹配到的行
模式: 由正则表达式字符及文本字符所编写的过滤条件
格式:

grep [OPTIONS] PATTERN [FILE...]

常用选项:

 --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,相当于egrep
 -F:相当于fgrep,不支持正则表达式
 -P: 支持Perl格式的正则表达式
 -f file: 根据模式文件处理
 -r: 递归目录,但不处理软连接
 -R: 递归目录,处理软连接

sed

stream editor,文本编辑工具

sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环。如果没有使诸如‘D’的特殊命令,那会在两个循环之间清空模式空间,但不会清空保留空间。这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。

功能:主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等用法:

sed [option]... 'script;script;...' [inputfile...]

常用选项:

  -n:不输出模式空间内容到屏幕,即不自动打印
  -e: 多点编辑
  -f:/PATH/SCRIPT_FILE : 从指定文件中读取编辑脚本
  -r,-E: 支持使用扩展正则表达式
  -i.bak: 备份文件并原处编辑
#说明
  -ir 不支持
  -i -r 支持
  -ri  支持
  -ni  危险选项,会清空文件

script格式:

'地址命令'

地址格式:

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

命令:

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

查找替代

s/pattern/string/修饰符   查找替换,支持使用其他分隔符,可以使其他形式: s@@@,s###
替换修饰符:
g: 行内全局替换
p: 显示替换成功的行
w  /PATH/TO/SOMEFILE :将替换成功的行保存至文件中
I,i  忽略大小写

awk

linux上的实现gawk,文本报告生成器

作者:于浩  创建时间:2024-01-15 17:13
最后编辑:于浩  更新时间:2025-06-17 17:31