linux100day(day4)--文本处理三剑客
在介绍三剑客之前,先来认识一下通配符和正则表达式
通配符

正则表达式
作用:通过一些特殊字符,来表示一类字符内容
1、字符匹配
. 任意一个字符
[ ] 范围内的任意一个字符
[^ ] 取反
字符类 [:digit:] [:alnum:] [:alpha:] [:lower:] [:upper:] [:space:] [:punct:]
2、次数匹配
* 匹配前面的字符0次到多次
? 匹配前面的字符0次到1次
+ 匹配前面的字符1次到多次
3、位置锚定
^ 锚定行首
$ 锚定行尾
\b 锚定词首和锚定词尾
\> 锚定词尾
\< 锚定词首
<\root\> 匹配root单词
\{m\} 匹配前面的字符m次
\{m,n\} 匹配前面的字符m到n次
4、分组
\(\)
分组特性:默认清空下,linux系统下回为分组指定变量,变量表示形式\1 \2 \3
day4--文本处理三剑客awk,sed,grep
三剑客用法非常灵活强大,需要在练习中慢慢体会,遂以练习为主。
awk(报告生成器)
awk作为三剑客的老大,擅长于取列,主要用来做文本输出格式化
awk在处理文件时是逐行处理的
在awk中,全部行称为$0,第一个字段称为$1,第二个字段称为$2……
NR为行号,NF表示最后一行
BEGIN表示最开始执行,END表示最末尾执行,因为这种特性,BEGIN常常用来赋值
awk [选项] [处理命令(脚本)] [文件]
awk -F 指定输入文件折分隔符
awk -v 赋值一个用户定义变量
awk -f 从脚本文件中读取awk命令
例1、输出/etc/passwd第一行的第一个域

例2、打印出/etc/passwd的第3个域和第5个域

例3、匹配/var/log/message中,带有erro关键字的相关信息

例4、输出/etc/passwd中文件名,行数,列数,和整行信息
awk -F ':' '{print FILENAME, NR , NF ,$0}' /etc/passwd
例5、使用冒号分隔符,查询最后一列

例6、使用awk输出第一块网卡的ip地址

sed(流处理器)
sed作为三剑客的老二,擅长取行,替换和数据搜寻
sed [选项] [脚本] [文件]
sed -e 以选项中指定的脚本来处理输入结果
sed -f 以选项中指定的脚本文件来处理输入结果
sed -n 只显示处理后结果
sed -i 替换
例1、查看/etc/passwd5-10行

这个p代表print打印,同理,d代表delete删除
例2、搜寻/etc/passwd中有root关键字的行

例3、新建一个文件,并删除2到4行

grep(文本行过滤工具)
grep [option]... PATTERN [FILE]
PATTERN一般使用两种方法,正则表达式和通配符
egrep = grep -E 使用扩展的正则表达式进行匹配
fgrep = fast grep 只使用文件通配符进行匹配
grep 默认使用正则表达式进行文本匹配
grep -P使用perl语言的正则表达式引擎进行搜索
grep -f指定文件
grep -i 忽略大小写
grep -v反选
grep --color=auto 语法着色
grep -c统计
grep -o输出时仅显示匹配内容(默认输出的是匹配到的行)
grep -n显示行号
grep -w只匹配与整个单词匹配的行
例1、显示/proc/meminfo文件中大小s开头的行

例2、显示/etc/passwd文件中不以/bin/bash结尾的行

例3、显示/etc/passwd文件中UID最大的用户的用户名

例4、如果用户root存在,显示其默认的shell程序

例5、找出/etc/passwd中的两位或三位数

linux100day(day4)--文本处理三剑客的更多相关文章
- 文本处理三剑客之sed命令
第十八章.文本处理三剑客之sed命令 目录 sed介绍 sed命令常用选项 sed常用编辑命令 sed使用示例 sed高级语法 18.1.sed简介 sed全名stream editor,流编辑器,s ...
- 文本处理三剑客之 Sed ——一般编辑命令
sed简介 sed (stream editor for filtering and transforming text) 是Linux上的文本处理三剑客之一,另外两个是grep和awk. sed又称 ...
- 文本处理三剑客之 grep
grep简介 grep(Global search REgular expression and Print out the line)是Linux上的文本处理三剑客之一,另外两个是sed和awk. ...
- shell脚本之正则表达和文本处理(文本处理三剑客:1、grep 2、sed 3、awk)
文本处理三剑客:1.grep 2.sed 3.awk 一.grep:(过滤) grep的使用,主要的参数有: -n :显示行号:-o :只显示匹配的内容-q :静默模式,没有任何输出,得用e ...
- Linux文本处理三剑客之sed
推荐新手阅读[酷壳]或[骏马金龙]开篇的教程作为入门.骏马兄后面的文章以及官方英文文档较难. [酷壳]:https://coolshell.cn/articles/9104.html [骏马金龙-博客 ...
- Linux文本处理三剑客之grep及正则表达式详解
Linux文本处理三剑客之grep及正则表达式详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux文本处理三剑客概述 grep: 全称:"Global se ...
- 关于Linux文本处理“三剑客”的一些小操作。
Linux文本处理“三剑客”,即grep.sed.awk,这是Linux中最核心 的3个命令. 一.首先做个简单的介绍: 1.awk:linux三剑客老大,过滤,输出内容,一门语言.NR代表行号. 2 ...
- Linux文本处理三剑客之——grep
一Linux文本处理三剑客之——grep Linux文本处理三剑客都支持正则表达式 grep :文本过滤( 模式:pattern) 工具,包括grep, egrep, fgrep (不支持正则表达式) ...
- Linux 文本处理三剑客之grep
文本处理都要使用正则表达式,正则表达式有: 基本正则表达式:grep或者egrep -G 扩展正则表达式:egreo或者grep -E Linux 文本处理三剑客: sed:stream editor ...
- 文本处理三剑客与shell正则表达式
文本处理三剑客 提到对于文本的处理上,除了vim这个强大的编辑器之外,还有使用命令的形式去处理你要处理的文本,而不需要手动打开文本再去编辑.这样做的好处是能够以shell命令的形式将编辑和处理文本的工 ...
随机推荐
- 2017提高组D1T1 洛谷P3951 小凯的疑惑
洛谷P3951 小凯的疑惑 原题 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想 ...
- IDM 6.27.5(Internet Download Manager)中文破解版下载神器
IDM一直是我最喜欢的下载工具,感觉用的比迅雷爽,简单使用,对付网盘有一套.IDM(Internet Download Manager)和迅雷的下载提速方式不同,从原理上来说,IDM速度较稳定,迅雷下 ...
- Java项目案例之---常用工具类练习
常用工具类练习 1. 请根据控制台输入的特定日期格式拆分日期,如:请输入一个日期(格式如:**月**日****年),经过处理得到:****年**月**日 import java.util.Scanne ...
- Spring MVC源码(三) ----- @RequestBody和@ResponseBody原理解析
概述 在SpringMVC的使用时,往往会用到@RequestBody和@ResponseBody两个注解,尤其是处理ajax请求必然要使用@ResponseBody注解.这两个注解对应着Contro ...
- Unable to start services through AMBARI UI
ambari开启nodemanager卡住,后台日志: Mar ::, WARN [ambari-action-scheduler] ActionScheduler: - Exception rece ...
- 2017-10271weblogic漏洞exp测试及补丁测试
靶机:weblogic12.1.3.0 战斗机:kali 导弹:burpsuite 1.首先开启kali某端口监听 2.向靶机发送exp 3.查看kali监听 打码保平安~~ 4.打上补丁 5.验证补 ...
- Tomcat CGIServlet enableCmdLineArguments远程代码执行_CVE-2019-0232漏洞复现
Tomcat CGIServlet enableCmdLineArguments远程代码执行_CVE-2019-0232漏洞复现 一.漏洞描述 该漏洞是由于tomcat CGI将命令行参数传递给Win ...
- Lucene02--入门程序
Lucene02--入门程序 开发准备: Win10 IDEA JDK1.8 1.新建一个普通的maven工程 1.1 添加依赖 <dependencies> <!-- Junit单 ...
- P4071 [SDOI2016]排列计数 题解
分析: 线性求逆元:https://blog.csdn.net/qq_34564984/article/details/52292502 代码: #include<cstdio> usin ...
- AppBoxFuture: 二级索引及索引扫描查询数据
数据库索引对于数据查询的重要性不可言喻,因此作者在存储层实现了二级索引,以及利用索引进行扫描的功能.目前仅实现了分区表与非分区表的本地索引(数据与索引共用一个Raft组管理),全局索引及反向索引待 ...