文本处理工具sed与awk

一、流编辑器sed

1、sed的工作方式
sed通过对输入数据执行任意数量用户指定的编辑操作。sed是基于行的,因此按顺序对每一行执行命令。然后,sed将其结果写入标准输出(stdout),它不修改任何输入文件。
2、sed命令格式
调用sed命令有两种形式

sed [选项] '命令' file(s)
sed [选项] -f  script   file(s)

3、sed对字符的处理

  • p 显示
  • d 删除
  • a 添加
  • c 替换
  • w 写入
  • i 插入

sed命令的选项(option):

-n :只打印模式匹配的行(仅显示处理后的结果)

-e :直接在命令行模式上进行sed动作编辑,此为默认选项

-f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作

-r :支持扩展表达式

-i :直接修改文件内容

4、p模式操作
例子:
(1)打印只匹配:的行
在这里插入图片描述
(2)只打印以UUID开头的行
在这里插入图片描述
(3)只打印文件的第二行到第六行
在这里插入图片描述
5、d模式操作
(1)删除以UUID开头的行
在这里插入图片描述
(2)删除1-4行
在这里插入图片描述
6、a操作模式
给以UUID开头的行尾部追加hello
在这里插入图片描述
7、i操作模式
在以UUID开头的行首插入hello
在这里插入图片描述
8、c操作模式
把以UUID开头的行替换为hello world
在这里插入图片描述
9、w操作模式
在这里插入图片描述

二、awk报告生成器

awk 处理机制:awk 会逐行处理文本,支持在处理第一行之前做一些准备工作,以及在处理完最后一行做一些总结性质的工作,在命令格式上分别体现如下:
BEGIN{}:读入第一行文本之前执行,一般用来初始化操作
{}:逐行处理,逐行读入文本执行相应的处理,是最常见的编辑指令快
END{}:处理完最后一行文本之后

awk '{[pattern] action}' {filenames}   # 行匹配语句 awk '' 只能用单引号
awk -F  #-F相当于内置变量FS, 指定分割字符

在这里插入图片描述
在这里插入图片描述
内置变量:
NF 一条记录的字段的数目(列数)
NR 已经读出的记录数,就是行号,从1开始
在这里插入图片描述
练习:
(1)找出系统可以登录的用户并统计个数
在这里插入图片描述
(2)找出可登录的用户但是家目录不在/home下
在这里插入图片描述
统计可登录的用户但是家目录不在/home下个数
在这里插入图片描述
显示一个文件的行数:
在这里插入图片描述
抓取网卡的ip
在这里插入图片描述

发布了114 篇原创文章 · 获赞 30 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_41476978/article/details/87982149