文本三剑客

目录

grep

awk

工具介绍

awk 命令

awk 常见的内置变量可直接用

awk 命令使用举例

打印磁盘已经使用情况

打印字符串

打印字符串确定文件有多少行

提取 ip地址

打印 /etc/passwd 所有用户名

打印多列内容

提取 /etc/passwd 以 root 开头的行

打印倒数第二行

当前处理的行的行号

NR==n 代表行号,取第几行

NR%2==0 取偶数行;NR%2==1 取奇数行

NR==m,NR==n 取 m到n 区间行

取 uid 数值范围

统计 /etc/fstab 文件中每个文件系统类型出现的次数

提取主机名并放入原文件

统计 /etc/fstab 文件中每个单词出现的次数

提取字符串 Yd$C@M05MB%9&Bdh7dq+YVixp3vpw 中的所有数字

sed

sed 命令

搜索替代

sed 命令使用举例

查看文件,打印全部内容

打印指定行内容

根据地址,打印指定多行内容

打印多行后退出

打印最后一行,使用通配符 $

过滤关键字

#,/关键字/p’ 从第 #行 开始匹配

‘/关键字/,#’ 找到第 #个 关键字为止

打印文本的奇数/偶数行

删除指定行

删除指定的多行

删除汇总

插入

变量

分组调用

提取ip地址


grep

—— 格式:grep 选项 查找条件 目标文件

选项作用
-color=auto对匹配到的文本着色显示,自带的功能
-m 数字匹配 多少次后停止 (多个匹配只取第一个)
-v显示不被 pattern 匹配到的行,即取反
-i忽略字符大小写
-n显示匹配的行号
-c统计匹配的行数
-o仅显示匹配到的字符串
-q静默模式,不输出任何信息
-A匹配到的行后 n 行显示出来
-B前 n 行
-C前后各 n 行
-e实现多个选项间的逻辑或者关系
-E使用ERE,相当于 egrep
-F不支持正则表达式,相当于 fgrep
-ffile 根据模式文件,处理两个文件相同内容 把第一个文件作为匹配条件
-r递归目录,但不处理软链接
-R递归目录,但处理软链接
-w匹配整个单词

awk

工具介绍

  • awk 是一种处理文本文件的语言,是一个强大的文本分析工具

  • 可以在无交互的模式下实现复杂的文本操作

  • 相较于 sed 常作用于一整个行的处理,awk 则比较倾向于一行当中分成数个字段来处理,因为awk 相当适合小型的文本数据

awk 命令

—— 格式:awk 选项 '表达式{处理动作}'

选项作用
-F指定分隔符
-v自定义变量
-f脚本

awk 常见的内置变量可直接用

选项作用
FS列分割符;指定每行文本的字段分隔符,默认为空格或制表位;与 "-F" 作用相同
NF当前处理的行的字段个数
NR当前处理的行的行号(序数)
$0当前处理的行的整行内容
$n当前处理行的第n个字段(第n列)
FILENAME被处理的文件名
RS行分隔符;awk 从文件上读取资料时,将根据 RS 的定义把资料切割成许多条记录,而 awk 一次仅读入一条记录,以进行处理,预设值是 ’\n’
OFS输出时的分隔符

awk 命令使用举例

打印磁盘已经使用情况

打印字符串

打印字符串确定文件有多少行

提取 ip地址

打印 /etc/passwd 所有用户名

打印多列内容

提取 /etc/passwd 以 root 开头的行

打印倒数第二行

当前处理的行的行号

NR==n 代表行号,取第几行

NR%2==0 取偶数行;NR%2==1 取奇数行

NR==m,NR==n 取 m到n 区间行

取 uid 数值范围

统计 /etc/fstab 文件中每个文件系统类型出现的次数

提取主机名并放入原文件

统计 /etc/fstab 文件中每个单词出现的次数

提取字符串 Yd$C@M05MB%9&Bdh7dq+YVixp3vpw 中的所有数字


sed

—— 格式:sed 选项 {脚本(如果没有其他脚本)} 输入文件

—— sed 是从文件或管道中读取一行,处理一行,输出一行;再读取一行,再处理一行,再输出一行,直到最后一行;每当处理一行时,把当前处理的行存储在临时缓冲区中,称为模式空间(PatternSpace),接着用 sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾;一次处理一行的设计模式使得 sed 性能很高,sed 在读取大文件时不会出现卡顿的现象;如果使用 vi 命令打开 几十M上百M 的文件,明显会出现有卡顿的现象,这是因为 vi 命令打开文件是一次性将文件加载到内存,然后再打开;sed 就避免了这种情况,一行一行的处理,打开速度非常快,执行速度也很快

sed 命令

—— sed 选项 自身脚本语法 支持标准输入管道

选项作用
-n不输出模式空间内容到屏幕,即不自动打印
-e多项编辑
-f从指定文件中读取编译脚本
-r使用扩展正则表达式
-i备份文件并原处编辑

常用操作

选项作用
s替换,替换指定字符
d删除,删除选定的行
a增加,在当前行下面增加一行指定内容
i插入,在选定行上面插入一行指定内容
c替换,将选定行替换为指定内容
Y字符转换,转换前后的字符长度必须相同
p打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容; 如果有非打印字符,则以 AscII 码输出。其通常与_n"选项一起使用
=打印行号
l(小写的L)打印数据流中的文本和不可打印的 ASCII 字符(比如结束符 s、制表符 \t)

搜索替代

—— 格式:sed 行范围 s/旧字符串/新字符串/替换标记

—— 替换标记

  1. 数字 :表明新字符串将替换第几处匹配的地方

  2. g : 表明新字符串将会替换所有匹配的地方

  3. p : 打印与替换命令匹配的行,与 -n 一起使用

  4. w 文件 :将替换的结果写到文件中

将test里凡是带r..t的字段后面都加上er

—— sed -n 's/r..t/&er/g' test

sed 命令使用举例

sed ''    :交互模式输入一行,自动打印一行相同的
​
sed -n '' :交互模式输入一行,关闭自动打印
​
sed -n '' :加上p又恢复自动打印

查看文件,打印全部内容

打印指定行内容

根据地址,打印指定多行内容

打印多行后退出

打印最后一行,使用通配符 $

过滤关键字

#,/关键字/p’ 从第 #行 开始匹配

‘/关键字/,#’ 找到第 #个 关键字为止

打印文本的奇数/偶数行

删除指定行

删除指定的多行

删除汇总
sed '$d'  test                  #删除最后一行
​
sed '/^$/d' test              #删除空格
​
sed 'd' test                     #全部删除
​
sed '/d$/d' test              #删除以d结尾的行
​
sed '/d$/!d' test             #!取反,删除除了以d结尾的行
​
sed '/a/,/c/d'   test         #删除从a开头的到c开头的,不论a-c之间有多少行都会被删除,直到匹配不到为止
​

插入

sed '/aa/c xxx' test      #将第一行的aa替换成xxx,c默认是替换第一行
​
sed '3c hhh'  test        #将第三行,全部替换成hhh
​
sed '1,3a  6666' test     #在1-3行的下面增加6666
​
sed '1,3i  6666' test     #在1-3行上面增加6666
​
sed '2r /opt/hyh' test   #r读入,在第二行下面,读入opt下的hyh文件内容
​

变量

sed -nr "/$name/p" /etc/passwd 
#提取变量用户名
#变量需要加双引号
​

分组调用

#只有扩展正则表达式才能支持分组。
​
#分组使用()(),调用第一段使用\1
​
echo  11aaxx |sed -r 's/(11)(aa)(xx) /\1/'   #调用第一组
​
11
​
echo  11aaxx |sed -r 's/(11)(aa)(xx) /\2/'   #调用第二组
​
aa
​
echo  11aaxx |sed -r 's/(11)(aa)(xx) /\1\2/'  #调用第一、二组
​
11aa
​
echo  11aaxx |sed -r 's/(11)(aa)(xx) /\1\2\3/'  #调用所有分组
​
11aaxx
​

提取ip地址
ifconfig ens32 |sed -rn '2s/.*(inet) ([0-9.]+)  (netmask) ([0-9.]+)  (broadcast) ([0-9.]+).*/\2/p'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/231389.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 中的锁(二)

8.4. 意向锁 但是在上面的例子这里头有两个问题: 如果我们想对大楼整体上 S 锁,首先需要确保大楼中的没有正在维修的楼层,如果有正在维修的楼层,需要等到维修结束才可以对大楼整体上 S 锁。 如果我们想对大楼整体上 X 锁&#xf…

2023亚马逊云科技re:Invent,在开发者板块探究如何利用技术重塑业务

美国当地时间11月27日,一年一度的亚马逊云科技re:Invent大会在美国拉斯维加斯盛大开幕。这场全球云计算领域的前沿盛会,已连续12年成为引领行业的风向标。那么本次2023亚马逊云科技re:Invent大会又有哪些可玩、可看的新项目,下面就一起来瞧一…

Making Reconstruction-based Method Great Again for Video Anomaly Detection

Making Reconstruction-based Method Great Again for Video Anomaly Detection 文章信息: 发表于ICDM 2022(CCF B会议) 原文地址:https://arxiv.org/abs/2301.12048 代码地址:https://github.com/wyzjack/MRMGA4VAD…

Linux篇:文件管理

一、共识原理: 1. 文件内容属性,内容与属性都是数据,都要在磁盘中保存。 2. 文件分为打开的文件和没打开的文件。 3. 研究打开的文件:本质是研究进程和文件的关系,因为是进程负责打开文件。 4. 没打开的文件在存储介质…

C++:STL第一篇vector

目录 1.vector 的介绍及使用 1.1 vector的介绍 1.2 vector的使用 1.2.1 vector的定义 1.2.2 vector iterator (迭代器)的使用 1.2.3 vector空间增长问题 1.2.4 vector的增删改查 1.2.5 vector 迭代器失效问题。(重点) 2.vector 深度刨析及模拟实…

每日一练2023.11.29——到底有多二【PTA】

题目链接: 到底有多二 题目要求: 一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字-13142223336是个11位数,其…

全国高校走进深算院:共话国产数据库产教融合生态建设

近日,由教育部高等学校计算机类专业教学指导委员会、全国高等学校计算机教育研究会主办,清华大学出版社、深圳市信息技术应用创新联盟承办的“2023全国高校走进信创企业研学活动”顺利举办。来自全国各地30余家高校的近80位院校领导、教师代表走进了深圳…

Zabbix“专家坐诊”第213期问答汇总

问题一 Q:Zabbix报错:Zabbix server is not running :the information displayed may not be current,是什么问题呢? A: 1、数据库软件问题导致导入的zabbix数据库不完整2、zabbix Server配置问题3、zabbix-server没…

干货:一文讲通Python爬虫的基本原理

Python中一个应用广泛的方向就是爬虫。 今天就给大家讲讲爬虫的原理,并举个小案例说明爬虫的流程。 1、什么是爬虫? 我们日常浏览的文字、图片、视频等数据是在别人服务器上的,通过网络传输到浏览器展示给我们看,那如果我们想把…

【Java】文件路径-绝对路径与相对路径

1、绝对路径与相对路径 先来看一下绝对路径和相对路径的定义: 绝对路径是指完整的描述文件位置的路径就是绝对路径。如Windows系统中的D:\Project\data\test.txt,MAC系统中的/Users/liuwenwen/Desktop/Project/test.txt 相对路径是指相对于当前文件位置…

CentOS 8 安装国内、本地YUM源

环境:windows 11、 VMware 17、Cent OS 8 目的:加快软件下载速度 1、国内YUM源安装 使用国外的源,速度卡到不显示 备份默认YUM源文件 [rootlocalhost ~]# cd /etc/yum.repos.d/ [rootlocalhost yum.repos.d]# mkdir yum.bak [rootlocalho…

vue项目---vue路由操作

目录 202221336029-网安2211 1.基础路由的挂载 1.封装到文件 2.路由器的基本操作 1.高亮显示 高亮实现 高亮显示与模糊匹配 自定义高亮名称 2.导航传参 1.静态传参 2.动态传参 3.可选符号: 3.总结: 202221336029-网安2211 1.基础路由的挂载 …