【三剑客和正则表达式】

news2024/11/25 4:01:03

文章目录

  • 学习目标
  • 一、什么是三剑客
    • 1.三剑客grep
    • 2.三剑客sed
    • 3.三剑客awk
    • 4.正则过滤例子1
    • 5.正则过滤例子2
  • 总结


学习目标

1.学会使用 grep
2.学会使用 sed
3.学会使用 awk
4.学会使用正则表达式

一、什么是三剑客

正则三剑客:grep sed awk

1.三剑客grep

# 擅长过滤
# grep参数
	-n		行号
	-c		对结果行计数
	-i		不区分大小写
	-v		反向搜索,取反
	-w		精准匹配
	-o		只显示匹配的结果
	-A1		同时打印搜索结果行的后一行
	-B3		同时打印搜索结果行的前三行
	-C2		同时打印搜索结果行的上下各两行
	-E		扩展正则表达式

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16

2.三剑客sed

# 擅长修改
用法:sed [-nri] [动作]  目标文本文件
选项与参数:
	-n:使用安静(silent)模式。在一般sed的用法中,
		所有来自STDIN的数据一般都会被列出到终端上。但如果
		加上-n参数后,则只有经过sed特殊处理的那一行(或者动作)才会被列出来。
	-r:sed的动作支持的是延伸型正规表示法的语法(默认是基础正规表示法语法)
	-i:直接修改读取的文件内容,而不是输出到终端。

动作说明:[n1[,n2]]funciton
	n1,n2一般表示为行号

function:
	a:指定行后面插入一行
	d:删除
	i:指定行前面插入一行
	p:打印,#一般和前面的-n参数一起用
	s:替换 需要I忽略大小写,全局替换需要g

17
18
19
20
21
22
23
24
25
26
27

3.三剑客awk

#擅长取列
用法:取列

eg1:取列
	awk '{print $1}'  1.txt
	awk '{print $1,$7}'  /etc/passwd

eg2:指定分割符
	awk -F ":"  '{print $1,$7}'  /etc/passwd
	#[ /]+空格 和斜杠/为分隔符,+代表合并连续的分隔符
	awk -F "[ /]+"  '{print  $2}'  1.txt

eg3:拼凑指定文本,双引号之间原样输出
	awk -F ":"  '{print $1":123:"$7}'  /etc/passwd

eg4:过滤文本
	awk -F "[ /]+"  '$2~/^47/' 1.txt

eg5:根据行号筛选内容
	awk 'NR<=3{print $0}' 1.txt	 
	# 大于>   小于<  等于==   大于等于>=   小于等于<=

awk:$0代表整行,$1代表第一列,$2代表第二列...第十列$10
	最后一列$NF
	NR代表行号

28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
过滤文本
51
52
53
54
文本拼凑
55
56

4.正则过滤例子1

1.什么是正则表达式

简单的说,正则表达式就是一套处理大量的字符串而定义的规则和方法。
例如:假设 @代表12345
通过正则表达式这些特殊符号,我们可以快速的过滤、替换需要的内容。
linux正则一般以行为单位处理的。

2.正则表达式

1) ^word 表示搜索以word开头的内容
2) word$ 表示搜索以word结尾的内容
3) ^$  表示空行,不是空格
4) .   代表且只能代表任意一个字符
5) \   转义字符,让有着特殊身份意义的字符,脱掉马甲,还原原型
6) *  重复0个或多个前面的一个字符。不代表所有了
7) .* 匹配所有的字符。 ^.* 任意多个字符开头
8) [abc] 匹配字符集内任意一个字符[a-z]
9) [^abc] ^在中括号里面表示非,不包含a或b或c
10) {n,m} 重复n到m次,前一个字符

举个例子:
57
58
59
60
61
62
63
64
65
66
67
68
69
70
再举一个例子:
71
72
73
74
75
76
77
78
79
80
81
82
83

规则没有写好导致没有下载到大部分图片,
但是基本步骤就是这样,重点是规则写好匹配得上才能下载大部分图片。
grep -Eo 'https[a-z.:/\-]+img.com.cn/t_s[0-9a-zA-Z/_-]+\.jpg' 
url.txt |awk '{print "wget "$1}' |/bin/bash

查IP

5.正则过滤例子2

正则表达式练习
1.从phpone.txt文本中的手机号码过滤出所有联通130/131/132号段的手机号码

2.找出手机靓号(如带连续3个以上连续相同数字的,如有8888或者9999)
	grep -E '^1[0-9]{10}$' phone.txt|grep -E
	 '000+|111+|222+|333+|444+|555+|666+|777+|888+|999'

	grep -E '^1[0-9]{10}$' phone.txt|grep -E 
	'000+$|111+$|222+$|333+$|444+$|555+$|666+$|777+$|888+$|999+$'

84
85
86
87
88

3.将下列文本中的手机号码提取出来
http://so.qqdna.com/nub/15912345678.html
http://so.qqdna.com/nub/13711223344.html
http://so.qqdna.com/nub/13511223344.html
http://so.qqdna.com/nub/13311223344.html
http://so.qqdna.com/nub/13911223344.html
http://so.qqdna.com/nub/13312345678.html

89
90

4.找出弱密码,密码长度低于8或者只有纯数字或者纯字母的为弱密码
答案:
	grep -E '^.{1,7}$|^[0-9]+$|^[a-z]+$|^[A-Z]+$' mima.txt 

91
92
93
94

5.过滤出正确的邮箱地址
答案:
	grep -E '^[0-9a-zA-Z]+@.*\.[a-z]+$' mail.txt 

95
96

6.批量下载页面上的jpg图片,给出详细命令
答案:
	grep -E 'src="https:[^"]+' tupian.txt 
	grep -Eo 'src="https:[^"]+' tupian.txt |grep 'jpg$'|sed 's#src="##g'
	
	grep -Eo 'src="https:[^"]+' tupian.txt |grep 
		-E 'jpg$|png$'|sed 's#src="##g'
		
	grep -Eo 'src="https:[^"]+' tupian.txt |grep -E 
		'jpg$|png$'|sed 's#src="##g' |awk '{print "wget "$1}' |/bin/bash

	grep -Eo 'src="https:[^"]+' tupian.txt |grep -E 
		'\.jpg|\.png'|sed 's#src="##g' |awk '{print "wget "$1}' |/bin/bash

	grep -Eo 'src="https:[^"]+' 
		curl "https://desk.zol.com.cn/fengjing/1920x1080/" 
		|grep -E 'jpg$|png$'|sed 's#src="##g' 
		|awk '{print "wget "$1}' |/bin/bash

97
98
99
100
101
102
103
104
105
106
107
菜鸟教程-正则表达式


总结

以上就是今天要讲的内容,三剑客和正则表达式要学习的知识点非常多,而且这一块知识比较绕,容易让人感到云里雾里的,要把每句的意思理解了才能运用自如,还远远不够,需要经常反复练习。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

到底什么是数字?

来源&#xff1a;Bulletins from the Wolfram Physics Project 一、说明 数字这个概念是最普遍而又最难把控的概念。对数字概念的深度解读&#xff0c;决定人类社会方方面面的整体水平。而且&#xff0c;随着宇宙知识的认识&#xff0c;数字概念也似乎在膨胀中。 外星人乘坐星际…

快速搭建 WordPress 外贸电商网站指南

本指南全面解析了在 Hostinger 平台上部署 WordPress 外贸电商网站的详细步骤&#xff0c;涵盖托管方案选择、WordPress 一键安装、主题挑选与演示数据导入、主题个性化定制、SEO插件插件 AIOSEO 安装、通过 GTranslate 实现多语言自动翻译、地区访问控制插件&#xff0c;助力用…

在 Ubuntu Server 22.04 上安装和配置 Kubectl

在 Ubuntu Server 22.04 上安装和配置 Kubectl 如何在 Ubuntu Server 22.04 上安装和配置 Kubectl&#xff0c;以便管理 Kubernetes 集群。 前提条件 在开始之前&#xff0c;请确保您已满足以下要求&#xff1a; 已安装 Ubuntu Server 22.04已安装 Kubernetes 集群拥有集群…

Linux应用入门(二)

1. 输入系统应用编程 1.1 输入系统介绍 常见的输入设备有键盘、鼠标、遥控杆、书写板、触摸屏等。用户经过这些输入设备与Linux系统进行数据交换。这些设备种类繁多&#xff0c;如何去统一它们的接口&#xff0c;Linux为了统一管理这些输入设备实现了一套能兼容所有输入设备的…

基于若依的旅游推荐管理系统(spring boot+vue+mybatis+Ajax)

目录 一、项目目的 二、项目需求 1、功能模块分析 2、数据库表er图 三、部分界面展示 1、景点信息 2、旅游路线 3、地方美食管理 四、新颖点 1、旅游路线、景点和美食的联系 2、联系实现 3、地级选择器&#xff08;省市二级&#xff09; 五、总结 一、项目目的 随着…

如何轻松访问 Android 手机和平板电脑上的内部存储

概括 在数字设备领域&#xff0c;我们的智能手机充当虚拟金库&#xff0c;在其范围内存储个人数据、珍贵记忆和重要信息的宝库。因此&#xff0c;我们将指导您如何访问 Android 上的内部存储&#xff0c;确保您可以安全、轻松地检查内部文件系统并管理文件。同时&#xff0c;您…

基于物联网表计的综合能源管理方案

安科瑞电气股份有限公司 祁洁 acrelqj 摘要&#xff1a;为加快推进国家“双碳”战略和新型能源体系建设&#xff0c;努力实现负荷精准控制和用户精细化管理&#xff0c;按照“政府主导、电网组织、政企协同、用户实施”的指导原则&#xff0c;多地成立市/县级电力负荷管理中…

南加州大学字节提出MagicPose,提供逼真的人类视频生成,实现生动的运动和面部表情传输,以及不需要任何微调的一致的野外零镜头生成。

MagicPose可以精确地生成外观一致的结果&#xff0c;而原始的文本到图像模型(如Stable Diffusion和ControlNet)很难准确地保持主体身份信息。 此外&#xff0c;MagicPose模块可以被视为原始文本到图像模型的扩展/插件&#xff0c;而无需修改其预训练的权重。 相关链接 论文链…

[图解]产品经理创新模式02改善信息流转

1 00:00:02,160 --> 00:00:04,000 第二种改进模式 2 00:00:04,010 --> 00:00:06,340 就是改善信息流转 3 00:00:06,550 --> 00:00:08,000 它是这样的 4 00:00:09,250 --> 00:00:11,290 当电脑系统越来越多的时候 5 00:00:11,300 --> 00:00:12,530 就会出现这…

【四数之和】python,排序+双指针

四层循环&#xff1f;&#xff08;doge) 和【三数之和】题目很类似 class Solution:def fourSum(self, nums: List[int], target: int) -> List[List[int]]:nums.sort()#a,b,c,d四个数&#xff0c;先固定两个数&#xff0c;那就是双指针问题了&#xff0c;令ba1&#xff…

mysql实战——xtrabackup问题

备份恢复后启动不成功。 我测试了很多遍&#xff0c;最开始我以为备份后的数据文件没有pid造成的&#xff0c;所以一直测试 后来发现上图这样是正常的&#xff0c;mysqld_safe后就出现pid和sock文件 那启动失败的原因我认为是权限的问题&#xff0c;把数据文件目录权限全部设置…

ES的安装以及配置

环境&#xff1a;windows10、ES&#xff08;8.13.3&#xff09;、Kibana&#xff08;8.13.3&#xff09;、Logstash&#xff08;8.13.3&#xff09; 1.下载安装ES Download Elasticsearch | ElasticDownload Elasticsearch or the complete Elastic Stack (formerly ELK stac…

Vision Mamba论文阅读(主干网络)

这几天被Mamba刷屏了&#xff0c;又由于本人是做视觉方面任务的&#xff0c;固来看看mamba在视觉上的应用。 今天分享的是Vision Mamba: Vision Mamba: Efficient Visual Representation Learning with Bidirectional State Space Model 论文网址&#xff1a;https://arxiv.or…

二级建造师考试工作年限怎么计算?中霖教育怎么样?

二级建造师考试对于工作年限有明确的要求&#xff0c;在计算二级建造师考试所需的工作年限时&#xff0c;考生需依据其所取得的教育类型来分别处理。 对于非全日制学历背景的考生&#xff0c;相关专业工作年限包括从获取规定学历之前直至报考当年年末所从事的该项工作的整个时…

Anthropic绘制出了大型语言模型的思维图:大型语言模型到底是如何工作

今天&#xff0c;我们报告了在理解人工智能模型的内部运作方面取得的重大进展。我们已经确定了如何在 Claude Sonnet&#xff08;我们部署的大型语言模型之一&#xff09;中表示数百万个概念。这是对现代生产级大型语言模型的首次详细了解。这种可解释性的发现将来可以帮助我们…

【LSTM】LSTM cell的门结构学习笔记

文章目录 1. LSTM cell2. 门结构3. 门的公式4. 门的参数5. 重点关系厘清 1. LSTM cell 如文章 LSTM网络与参数学习笔记 中介绍, LSTM cell指的是一个包含隐藏层所有神经元的结构.但是LSTM门控单元的公式如何理解、门和LSTM cell神经元如何对应、门函数的参数维度、不同时间步不…

ChannelHandler和ChannelPipeline之一

目录 ChannelHandler Channel的生命周期 ChannelHandler的生命周期 ChannelInboundHandler接口 ChannelOutboundHandler接口 ChannelHandler适配器 资源管理 ChannelPipeline接口 修改ChannelPipeline 触发事件 ChannelHandler Channel的生命周期 Channel定义了一组和…

webgl入门-矩阵变换

矩阵变换 前言 变换有三种状态&#xff1a;平移、旋转、缩放。 当我们变换一个图形时&#xff0c;实际上就是在移动这个图形的所有顶点。 课堂目标 掌握图形变换的三种方式。可以对图像进行复合变换。 知识点 平移旋转缩放 第一章 平移 对图形的平移就是对图形所有顶点…

Golang | Leetcode Golang题解之第107题二叉树的层序遍历II

题目&#xff1a; 题解&#xff1a; func levelOrderBottom(root *TreeNode) [][]int {levelOrder : [][]int{}if root nil {return levelOrder}queue : []*TreeNode{}queue append(queue, root)for len(queue) > 0 {level : []int{}size : len(queue)for i : 0; i < …

521源码-免费教程-Linux系统硬盘扩容教程

本教程来自521源码&#xff1a;更多网站源码下载学习教程&#xff0c;请点击&#x1f449;-521源码-&#x1f448;获取最新资源 首先&#xff1a;扩容分区表 SSH登陆服务器输入命令&#xff1a;df -TH&#xff0c;获得数据盘相关信息 可以看到演示服务器的数据盘分区是&…