【三劍客和正則表達式】

文章目錄

  • 學習目標
  • 一、什么是三劍客
    • 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]]funcitonn1,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.txtawk '{print $1,$7}'  /etc/passwdeg2:指定分割符awk -F ":"  '{print $1,$7}'  /etc/passwd#[ /]+空格 和斜杠/為分隔符,+代表合并連續的分隔符awk -F "[ /]+"  '{print  $2}'  1.txteg3:拼湊指定文本,雙引號之間原樣輸出awk -F ":"  '{print $1":123:"$7}'  /etc/passwdeg4:過濾文本awk -F "[ /]+"  '$2~/^47/' 1.txteg5:根據行號篩選內容awk 'NR<=3{print $0}' 1.txt	 # 大于>   小于<  等于==   大于等于>=   小于等于<=awk:$0代表整行,$1代表第一列,$2代表第二列...第十列$10最后一列$NFNR代表行號

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/bashgrep -Eo 'src="https:[^"]+' tupian.txt |grep -E '\.jpg|\.png'|sed 's#src="##g' |awk '{print "wget "$1}' |/bin/bashgrep -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.pswp.cn/diannao/13977.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/13977.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/13977.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【MySQL精通之路】查詢優化器的使用(8)

MySQL通過影響查詢計劃評估方式的系統變量、可切換優化、優化器和索引提示以及優化器成本模型提供優化器控制。 服務器在column_statistics數據字典表中維護有關列值的直方圖統計信息&#xff08;請參閱第10.9.6節“Optimizer統計信息”&#xff09;。與其他數據字典表一樣&am…

#Ethereum 現貨ETF 問題匯總 轉

專題&#xff1a; #Ethereum 現貨ETF 問題匯總&#xff0c;包括了多數小伙伴們的疑問&#xff0c;有任何忽略請留言給我&#xff0c;我會補充。 1. #ETH 現貨ETF何時公布&#xff1f; 一般來說會在北京時間的5月24日凌晨2點至4點之間&#xff0c;不排除稍微延后到凌晨6點的可能…

基于大語言模型的應用

在AI領域&#xff0c;大語言模型已成為備受矚目的焦點&#xff0c;尤其在自然語言處理&#xff08;NLP&#xff09;領域&#xff0c;其應用愈發廣泛。BLM作為一種多任務語言建模方法&#xff0c;旨在構建一個具備多功能的強大模型。在給定文本和查詢條件下&#xff0c;該模型能…

【深度學習】YOLOv8訓練,交通燈目標檢測

文章目錄 一、數據處理二、環境三、訓練 一、數據處理 import traceback import xml.etree.ElementTree as ET import os import shutil import random import cv2 import numpy as np from tqdm import tqdmdef convert_annotation_to_list(xml_filepath, size_width, size_he…

海山數據庫(He3DB)代理ProxySQL使用詳解:(二)功能實測

讀寫分離實測 ProxySQL官方demo演示了三種讀寫分離的方式&#xff1a;使用不同的端口進行讀寫分離、使用正則表達式進行通用的讀寫分離、使用正則和digest進行更智能的讀寫分離。最后一種是針對特定業務進行的優化調整&#xff0c;也可將其歸結為第二種方式&#xff0c;下邊分…

MySQL備份與日志練習

1、創建對mysql數據庫test1的定時備份任務&#xff0c;頻率是每周一的2點 create database test1;crond -e0 2 * * 1 mysqldump -u root -pAdmin123 --databases test1 > /opt/test1.sql2、test1中有t1、t2、t3三張表&#xff0c;要求只備份t2這張表 mysqldump -u root -pA…

Python 機器學習 基礎 之 數據表示與特征工程 【單變量非線性變換 / 自動化特征選擇/利用專家知識】的簡單說明

Python 機器學習 基礎 之 數據表示與特征工程 【單變量非線性變換 / 自動化特征選擇/利用專家知識】的簡單說明 目錄 Python 機器學習 基礎 之 數據表示與特征工程 【單變量非線性變換 / 自動化特征選擇/利用專家知識】的簡單說明 一、簡單介紹 二、單變量非線性變換 三、自…

知識圖譜數據預處理筆記

知識圖譜數據預處理筆記 0. 引言1. 筆記1-1. \的轉義1-2. 特殊符號的清理1-3. 檢查結尾是否正常1-4. 檢查<>是否存在1-5. 兩端空格的清理1-6. 檢查object內容長時是否以<開始 0. 引言 最近學習知識圖譜&#xff0c;發現數據有很多問題&#xff0c;這篇筆記記錄遇到的…

軟件設計師備考筆記(九):數據庫技術基礎

文章目錄 一、基本概念二、數據模型&#xff08;一&#xff09;基本概念&#xff08;二&#xff09;E-R模型&#xff08;三&#xff09;數據模型 三、關系代數&#xff08;一&#xff09;關系數據庫的基本概念&#xff08;二&#xff09;五種基本的關系代數運算&#xff08;三&…

React hooks - forwardRef+useImperativeHandle

forwardRefuseImperativeHandle React.forwardRef用法useImperativeHandle用法第三個參數的用法 React.forwardRef與useImperativeHandle配合使用注意事項 React.forwardRef用法 1.創建一個 能夠接受到ref屬性的React 組件。 ref 用來獲取實例&#xff0c;但函數組件不存在實例…

bugku 網絡安全事件應急響應

開啟靶場&#xff1a; 開始實驗&#xff1a; 使用Xshell登錄服務器&#xff0c;賬號及密碼如上圖。 1、提交攻擊者的IP地址 WP: 找到服務器日志路徑&#xff0c;通常是在/var/log/&#xff0c;使用cd /var/log/&#xff0c;ls查看此路徑下的文件. 找到nginx文件夾。 進入ng…

hyperopt、optuna、gridsearch、randomsearch自動調參

開始使?hyperopt進??動調參 algo partial(tpe.suggest, n_startup_jobs1) best fmin(lightgbm_factory, space, algoalgo, max_evals20, pass_expr_memo_ctrlNone) RMSE lightgbm_factory(best) print(‘best :’, best) print(‘best param after transform :’) argsD…

【Jenkins】Centos7安裝Jenkins(環境:JDK11,tomcat9,maven3.8)

目錄 Jenkins部署環境Maven安裝1.上傳安裝包2.解壓3.配置Maven環境變量4.使配置文件立即生效5.校驗Maven安裝6.Maven配置阿里云倉庫7.Maven配置依賴下載位置 Git安裝安裝監測安裝 JDK17安裝1.查看舊版本JDK2.卸載舊版本JDK3.查看是否卸載干凈4.創建java目錄5.下載JDK11安裝包6.…

“開源與閉源大模型:數據隱私、商業應用與社區參與的多維比較“

開源大模型和閉源大模型各有其優勢和局限&#xff0c;它們在數據隱私、商業應用和社區參與方面的表現也各有不同。以下是對這三個方面進行的分析&#xff1a; 方向一&#xff1a;數據隱私 開源大模型&#xff1a; 優點&#xff1a;開源模型通常允許用戶和開發者查看和修改代…

Excel中Lookup函數

#Excel查找函數最常用的是Vlookup&#xff0c;而且是經常用其精確查找。Lookup函數的強大之處在于其“二分法”的原理。 LOOKUP&#xff08;查找值&#xff0c;查找區域&#xff08;Vector/Array&#xff09;&#xff0c;[返回結果區域]&#xff09; 為什么查找區域必須升序/…

一種處理checked exception的方法

一種處理checked exception的方法 在網上看到的一種處理異常的方法 public abstract class Try<V> {private Try() {}public abstract Boolean isSuccess();public abstract Boolean isFailure();public abstract void throwException();public abstract Throwable getMe…

【UE HTTP】“BlueprintHTTP Server - A Web Server for Unreal Engine”插件使用記錄

1. 在商城中下載“BlueprintHTTP Server - A Web Server for Unreal Engine”插件 該插件的主要功能有如下3點&#xff1a; &#xff08;1&#xff09;監聽客戶端請求。 &#xff08;2&#xff09;可以將文件直接從Unreal Engine應用程序提供到Web。 &#xff08;3&#xff…

Antd Vue項目引入TailwindCss之后出現svg icon下移,布局中的問題解決方案

目錄 1. 現象&#xff1a; 2. 原因分析&#xff1a; 3. 解決方案&#xff1a; 寫法一&#xff1a;擴展Preflight 寫法二&#xff1a; 4. 禁用 Preflight 1. 現象&#xff1a; Antd Vue項目引入TailwindCss之后出現svg icon下移&#xff0c;不能對齊顯示的情況&#xff0…

k8s筆記 | Prometheus安裝

kube-prometheus 基于github安裝 選擇對應的版本 這里選擇 https://github.com/prometheus-operator/kube-prometheus/tree/release-0.11 下載修改為國內鏡像源 image: quay.io 改為 quay.mirrors.ustc.edu.cn image: k8s.gcr.io 改為 lank8s.cn 創建 prometheus-ingres…

在AndroidStudio創建虛擬手機DUB-AI20

1.DUB-AI20介紹 DUB-AL20是華為暢享9全網通機型。 華為暢享9采用基于Android 8.1定制的EMUI 8.2系統&#xff0c;最大的亮點是配置了1300萬AI雙攝、4000mAh大電池以及AI人臉識別功能&#xff0c;支持熄屏快拍、笑臉抓拍、聲控拍照、手勢拍照等特色的拍照功能&#xff0c;支持移…