Linux 文本处理三大利器:grep、sed、awk

grep:文本过滤工具

grep 的功能是从文本文件或管道数据流中筛选匹配的行及数据。

语法格式:

grep [OPTIONS] PATTERN [FILE]

1.OPTIONS:参数
2.PATTERN:匹配模式
3.FILE查找的文件

grep 命令常用的参数选项及说明

参数选项说明
-v显示不包含匹配文件的所有行
-n显示匹配行及行号
-i不区分大小写
-c统计匹配行数
-E使用扩展的egrep命令
–color=auto为grep过滤的匹配字符串添加颜色
-w只匹配过滤的单词
-o只输出匹配的内容
grep -Ei 'go|java' test.txt 等同于 egrep -i 'go|java' test.txt

grep 命令其他参数选项使用 man grepgrep --help 查看

Sed (Stream Editor):字符流编辑器

sed 是操作、过滤和转换文本内容的强大工具。

语法格式:

sed [选项] [sed内置命令符号] [输入文件]

sed 命令的参数选项及说明

参数选项说明
-n取消默认的 sed 输出,常与 sed 内置命令的 p 连用
-i直接修改文件内容。如果不使用 -i 选项,则 sed 只是修改内存中的数据,并不会影像磁盘上的文件

sed 常用内置命令字符

sed 的内置命令字符说明
a全拼 append ,表示追加文本,在指定行后添加一行或多行文本
d全拼 delete,表示匹配行的文本
i全拼 insert,表示插入文本,在指定行前添加一行或多行文本
p全拼 print,表示打印匹配行的内容,通常 p 会与选项 -n 一起使用
s/regexp/replacement/匹配 regexp 部分的内容,用 replacement 替换 regexp 匹配的内容

sed 的内置命令字符 a、d、i 直接使用只是修改内存中的数据,如果想直接修改磁盘上的文件数据,配合 -i 参数选项使用。

Awk

Awk 是一个维护和处理文本数据文件的强大语言。在文本数据有一定的格式,即每行数据包含多个以分界符分隔的字段时,显得尤其有用。

Awk 基础语法:

awk -Fs '/pattern/{action}' input-file
或
awk -Fs '{action}' input-file
  • -F 为字符分界符。如果不指定,默认会使用空格作为分界符;
  • /pattern/ 和 {action} 需要用单引号引起来;
  • /pattern/ 是可选的。如果不指定, awk 将处理输入文件中的所有记录。如果指定一
    个模式, awk 则只处理匹配指定的模式的记录;
  • {action} 为 awk 命令,可以是单个命令,也可以多个命令。整个 action(包括里面的
    所有命令)都必须放在{ 和 }之间;
  • input-file 即为要处理的文件

Awk 程序结构(BEGIN,body,END)区域

  1. BEGIN 区域语法:
BEGIN {awk-commands}

BEGIN 区域的命令只最开始、在 awk 执行 body 区域命令之前执行一次

  1. body 区域语法:
/pattern/{action}
  1. END 区域语法:
END{awk-commands}

END 区域在 awk 执行完所有操作后执行,并且只执行一次。

awk 内置变量

  1. FS - 输出字段分隔符
  2. OFS - 输出字段分隔符
  3. RS - 记录分隔符
  4. ORS - 输出记录分隔符
  5. NR - 记录序号

awk 用法很多,我这里只是简单介绍一下。关于 sed 与 awk 学习推荐阅读一下 「Sed and Awk 101 Hacks」这本书,写的很好,有相关使用技巧的 Demo。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值