Liunx运维(四)-文本处理三剑客:grep、sed、awk
文档目录:
---------------------------------------分割线:正文--------------------------------------------------------
一、grep:文本过滤工具
1、grep -v '123' test3 #过滤不包含123的行

2、grep -n '123' test3 #过滤包含123的行并输出行号

3、grep -i 'AbC' test3 #过滤含abc的行并不区分大小写

4、grep -Ei 'abc|123' test3 #同事过滤两个不同的字符串并为过滤的内容颜色显示,并不显示大小写

5、grep -c 123 test3 #匹配的字符串的数量

6、grep -o -n 123 test3 #只输出匹配的内容

7、grep -w 123 test3 #全词匹配123

8、grep -Ev '^$|#' test3 #去除文本中的^$空行 以及 #注释

二、sed:字符流编辑器
预置测试文本:

1、sed '2a 102_1 xiaowang,CSO' test4.txt #2a,第2行后增加,实际文件并不增加

2、sed '2i 102_1 xiaowang,CSO' test4.txt #2i,第2行前增加,实际文件并不增加

3、sed '2a 102_1 xiaowang,CSO\n102_2 xiaohuang,PMP' test4.txt #2a,第2行后增加2行文本

4、sed 2d test4.txt #删除第二行文本

5、sed 2,5d test4.txt #删除2-5行文本

6、sed s#white#black#g test4.txt #替换白为黑

7、sed -n '2p' test4.txt #n取消默认输出,2p查询出指定行

8、sed -i '2a 102_1 haha,TSE' test4.txt #-i直接更改文件

三、awk:文本分析工具
1、awk NR==2 test4.txt #输出第2行命令

2、awk NR==2,NR==5 test4.txt #输出第2-5行命令

3、awk '{print NR,$0}' test4.txt #awk'墙 显示 行号和这一行的内容 墙'

4、awk 'NR==2,NR==5 {print NR,$0}' test4.txt #显示第2行到第6行,并且打印行号

5、awk -F ',' '{print $1,$3}' test4.txt #打印逗号分割的第1列和第3列,$0代表整行

6、awk '{gsub('10','100',$0);print $0}' test4.txt #使用gsub替换10为100

7、ifconfig ens33 | awk -F 'inet | netmask ' 'NR==2{print $2}' #两把菜刀分割inet与netmask取得$2第二部分内容,并取第二行的分割结果

8、ifconfig ens33 | awk -F '[ ]+' 'NR==2{print $3}' #正则表达式[ ]+表示以单个或多个空格分割,完了取第三部分内容

9、awk -F '/' '{print $3}' test5.txt #以/分割并取出第三部分内容

10、awk -F '/' '{print $3}' test5.txt|sort #以/分割并取出第三部分内容,并排序,结合sort

11、awk -F '/' '{print $3}' test5.txt|sort|uniq -c #去重计数,结合uniq

12、awk -F '/' '{hotel[$3]++}END{for(domain in hotel)print domain,hotel[domain]}' test5.txt #通过awk创建数组并通过循环来实现去重统计

Liunx运维(四)-文本处理三剑客:grep、sed、awk的更多相关文章
- Linux三剑客grep/sed/awk
grep/sed/awk被称为linux的“三剑客” grep更适合单纯的查找或匹配文本: sed更适合编辑匹配到的文本: awk更适合格式化文本,对文本进行较复杂各式处理: Grep --color ...
- linux三剑客grep|sed|awk实践
最好先学习正则表达式的基本用法,以及正则表达式BREs,EREs,PREs的区别 此坑待填 grep sed awk
- 【Linux】 字符串和文本处理工具 grep & sed & awk
Linux字符串&文本处理工具 因为用linux的时候主要用到的还是字符交互界面,所以对字符串的处理变得十分重要.这篇介绍三个常用的字符串处理工具,包括grep,sed和awk ■ grep ...
- Linux三剑客grep、awk和sed
grep,sed 和 awk是Linux/Unix 系统中常用的三个文本处理的命令行工具,称为文本处理三剑客.本文将简要介绍这三个命令并给出基本用法. 管道 在介绍这两个命令之前,有必要介绍一下Uni ...
- 文本处理三剑客之sed命令
第十八章.文本处理三剑客之sed命令 目录 sed介绍 sed命令常用选项 sed常用编辑命令 sed使用示例 sed高级语法 18.1.sed简介 sed全名stream editor,流编辑器,s ...
- day60:Linux压缩与打包&用户管理&用户提权sudo&grep,sed,awk,sort,uniq
目录 1.文件管理-压缩与打包 2.用户管理 用户怎么查 如何创建用户 创建的用户信息都存储在哪? 用户存储密码的文件 如何为用户设定密码? 3.用户组 4.用户提权相关 5.Extra:额外补充 文 ...
- Linux运维四:文件属性及文件权限
一:文件属性 我们使用ls -lhi命令来查看文件时,会列出一堆的文件属性,如: [root@Gin day7]# ll -hi total 7.8M 260674 -rw-r--r-- 1 root ...
- 【linux】【jenkins】自动化运维四 整合gitlab、docker发布java项目
jenkins发布java项目 过程参考发布vue项目.https://www.cnblogs.com/jxd283465/p/11543431.html 大同小异. vue建立的是Freestyle ...
- 文本处理三剑客之 Sed ——一般编辑命令
sed简介 sed (stream editor for filtering and transforming text) 是Linux上的文本处理三剑客之一,另外两个是grep和awk. sed又称 ...
- Linux文本处理三剑客之sed
推荐新手阅读[酷壳]或[骏马金龙]开篇的教程作为入门.骏马兄后面的文章以及官方英文文档较难. [酷壳]:https://coolshell.cn/articles/9104.html [骏马金龙-博客 ...
随机推荐
- 如何在cmd中转入其他文件夹
- Python实现贪吃蛇大作战
贪吃蛇 初始版本 初始版本,只存在基本数据结构--双向队列. 游戏思路 贪吃蛇通过不断得吃食物来增长自身,如果贪吃蛇碰到边界或者自身则游戏失败. 食物是绿色矩形来模拟,坐标为随机数生成,定义一个蛇长变 ...
- Scrapy-redis组件,实现分布式爬虫
安装包 pip install -U scrapy-redis settings.py ##### Scrapy-Redis ##### ### Scrapy指定Redis 配置 ### # 其他默认 ...
- 数字孪生与VR设备的融合为旅游行业带来革新
数字时代的推动下,旅游行业正迎来一场革命性的变革.数字孪生系统与虚拟现实(VR)的融合为旅游体验带来了全新的可能性.通过数字孪生技术的实时模拟和VR设备的沉浸式体验,旅游行业迎来了全新的变革时代. 数 ...
- MinIO客户端之mv
MinIO提供了一个命令行程序mc用于协助用户完成日常的维护.管理类工作. 官方资料 mc mv 将对象在桶之间移动. 在桶内准备好待移动的文件,检查对象,命令如下: ./mc ls local1/b ...
- ElasticSearch之线程池
ElasticSearch节点可用的CPU核的数量,通常可以交给ElasticSearch来自行检测和判定,另外可以在``elasticsearch.yml`中显式指定.样例如下: node.proc ...
- 关于windows激活程序的木马病毒分析及处置方法
客户电脑中毒,锁定几个病毒进程.EDR杀毒.木马专杀工具无法处置,该现象是和深信服外网AF防火墙联动后发现的行为,EDR无感知. 该病毒特征为,每日早上用户开机,均检查到外链du.testjj.com ...
- Java反序列化漏洞-CC6链分析
CC6利用链分析 经过之前对CC1链和URLDNS链的分析,现在已经对反序列化利用链有了初步的认识,这次来分析一个最好用的CC利用链--CC6. 为什么CC6是最好用的CC利用链,因为CC6不限制jd ...
- 元数据管理平台对比预研 Atlas VS Datahub VS Openmetadata
大家好,我是独孤风.元数据管理平台层出不穷,但目前主流的还是Atlas.Datahub.Openmetadata三家,那么我们该如何选择呢? 本文就带大家对比一下.要了解元数据管理平台,先要从架构说起 ...
- linux中创建新用户并且放到用户组中
1.打开终端并以 root 用户身份登录到 Linux 系统 2.使用以下命令创建一个新用户 sudo useradd -m username 将 "username" 替换为你要 ...