13-14linux三劍客grep,sed,awk

目錄

三劍客支持擴展正則寫法

grep命令

sed命令

sed指定行查找:

sed模糊過濾文件內容

sed之刪除:

sed之替換:

sed追加插入替換:

sed后向引用:

awk命令

awk按照行查找

awk模糊過濾文件內容

awk取列

awk指定分隔符:

awk模式+動作

awk數字比較:


? Linux三劍客是指grep、sed和awk這三個強大的文本處理工具,它們在Linux系統中被廣泛用于處理和分析文本數據。

三劍客支持擴展正則寫法

grep? -E或者egrep
sed? -r
awk?? ?默認支持擴展正則

grep命令

作用:模糊過濾文件的內容

語法:

grep? [參數]? ?'過濾的內容'? ?文件

參數:

grep? -v? :取反,匹配不包含指定內容的行

grep? -r? ?:遞歸搜索,搜索指定的目錄以及目錄下的文件

grep? -i? ?:不區分大小寫

grep? -w? :精準匹配

grep? -o? ?:顯示匹配過程

grep? -E? :支持擴展正則,相當于egrep

grep??-A n? ?:顯示過濾到內容的后 n行

grep??-B n? ?:顯示過濾到內容的前 n行

grep??-C n? ?:顯示過濾到內容的前后各n行

grep??-n? ? : 顯示過濾內容的行號

grep? ?-c? ? :統計某個單詞出現的次數

sed命令

功能:用于對文本進行流式編輯,可以進行替換、刪除、插入等操作

語法:

sed? [參數]? ?'動作'? ? 文件

參數:

sed-i修改源文件

sed-r支持擴展正則

sed-n取消默認輸出

創建環境

sed指定行查找:

sed? -n 只顯示被處理的行,通常配合p命令使用

過濾區間范圍:

sed? -n? '2,4p'? 文件

過濾2-4行

過濾2到最后一行

過濾屏幕上的內容

sed模糊過濾文件內容

模糊過濾語法:

sed? -n? '/過濾內容/p'? 文件

sed? -n? '/^r/p'? 文件? ? ? ? ? ?:過濾r開頭的行

sed? -n? '/^[1-4]/p'? 文件? ? ? :過濾1-4開頭的行

sed? -n? '/n$/p'? 文件? ? ? ? :過濾n結尾的行

過濾區間范圍:

sed? -n? '//,//p'? ?文件

? ?sed? -n? '/8.00/,/12.00/p'? ?文件? ? ? ? ? :過濾8.00開始到12.00結束的內容

sed之刪除:

sed? '3d'? 1.txt? :刪除第三行

sed? -i?? '3d'? 1.txt? :刪除第三行(修改源文件)

sed? '2,4d'? 1.txt? :刪除二到四行

sed? '2,$d'? 1.txt? :刪除二到最后一行

sed? '/過濾的內容/d'? 1.txt? :刪除過濾的那一行

sed '/^b/d'? ?:刪除b開頭的行

-r? ?支持擴展正則:

sed? -r? '/^bin | ^lp /d'? 1.txt? ? :把bin開頭或者lp開頭的行刪除

sed? -r? '/^bin/,/^lp /d'? 1.txt? ? :把bin開頭到lp開頭的行刪除

擴展正則:

+? ? ?? ? |? ? ()? ?{}? ? \b? ? \s? ? \w

sed之替換:

sed? ?'s#? 將誰? ? #? ?替換成誰? ?#g'? ?1.txt? ?

sed? ?'s@? 將誰? ? @? ?替換成誰? ?@g'? ?1.txt? ?

sed? ?'s/? 將誰? ? /? ?替換成誰? ?/g'? ?1.txt? ?

g:整行替換 ,不加g默認值替換每行第一個單詞

sed? ?'s/root //g'? ?1.txt? ? :把所有root替換成空(刪除)

sed? ?'s/[0-9]//g'? ? 1.txt? ?:把所有數字替換成空(刪除)

邊界符:\b? 或? \<

sed? 's/\broot\b/lg/g'? ?1.txt? ?:

如果有sroot,只把root替換,結果是slg

撬棍 \

如果想把 /root/? 替換可以用撬棍或#

sed? 's/\/root\//bin/g' 1.txt

sed 's#/root/#bin#g'? 1.txt

替換指定行:

sed '3s/root/bin/' 1.txt? :替換第三行root為bin

sed '2,3s/root/bin/' 1.txt? :替換2-3行root為bin

sed? ?'/adm/s/bin/root/g'? 1.txt? ?:先過濾出adm那一行,再把那行bin替換成root

sed? ?'/adm/,/hg/s/bin/root/g'? 1.txt? ?:先過濾出adm到hg的行,再把那些行中bin替換成root

sed追加插入替換:

sed? '3i? aaa'? 1.txt? 在第三行插入aaa

sed? '3a aaa'? 1.txt? 在第三行下一行(第四行)插入aaa

sed? '3c? aaa'? 1.txt? 把第三行整行替換成aaa

sed? '3w? new'? 1.txt? 把第三行內容保存到new文件中

sed? '3,4w? new'? 1.txt? 把3-4行內容保存到new文件中

sed后向引用:

sed? -r? s#()()()#\1\2\3#g

\1對應第一個括號

\2對應第二個括號......

可以對指定內容進行修改增添

例:利用sed后向引用批量創建文件

seq 5|sed -r 's#(.*)#touch \1.txt#g'|bash

例:利用后向引用批量創建用戶

seq 5|sed -r 's#(.*)#useradd \1#g'|bash

awk命令

awk是一個強大的文本分析工具,相對于grep的查找,sed的編輯,awk在其對數據進行分析并產生報告時,顯得尤為強大。簡單的說就是把文件逐行的讀入,以空格為默認分隔符將每行切片,切開的部分在進行各種分析處理。

作用:

1.取行
2.取列
3.模糊過濾
4.數據統計 數據運算
5.支持for循環 if判斷 數組..? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 6.格式化輸出 sed后向引用

語法:

awk '模式'? file? ? ? :不加任何動作默認輸出

awk? '模式{print}'? ?file? ??

其他的命令輸出|awk '模式'

awk默認支持正則

awk按照行查找

awk? 'NR==3'? file? :輸出第三行

NR存放著文件中每行的行號
NR的表達式:
== 等于第幾行
> 大于第幾行
< 小于第幾行
>= 等于等于第幾行
<= 小于等于第幾行
!= 不等于
&& 并且? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? || 或者

awk? 'NR<3'? file? ? :輸出小于3的行

awk? 'NR>3&&NR<5'? file? ? :輸出大于3小于5的行

awk? 'NR<3|NR>5'? file? ? ?:輸出小于3或者大于5的行

awk模糊過濾文件內容

awk? '/內容/'? file

awk? '/123/,/456/'? file

awk? ?'/root/'? file? ? :匹配所有包含root的行

awk? ?'/^r/'? file? ? ?:匹配所有r開頭的行

awk? ?'/h$/'? file? ? :匹配所有h結尾的行

awk? ?'/^[1-3]/'? file? ? ?:匹配所有1-3開頭的行

awk? ?'/^2/,/^4/'? file? ? ?:匹配所有2開頭的行到4開頭的行之前的內容

awk取列

默認以空格和tab鍵為分隔符,如果文件中沒有空格和tab鍵則文件內容被當做第一列

awk? '{print $n}'? file? :取出每一行第n列的內容

awk? '{print $1}'? file? ?:取出第一列內容

awk? '{print $1,$3}'? ?file? ?:取出第一列和第三列

awk? '{print $1''----''$3}'? ?file? ?:取出1,3列,并在中間加上----

awk? '{print NF}'? ?file? ?:顯示最后一列列號

awk? '{print $NF}'? file? ? :顯示最后一列的內容

df? -h | awk '{print? $5}'? ?取出磁盤第五列信息

df? -h | awk '{print? $(NF-1)}? ?:取出磁盤倒數第二列信息'?

awk指定分隔符:

默認以tab鍵或空格分隔

指定分隔符:

awk? -F? :? 或??

awk? -F? "? :? "? ? ? ? ? ? ? : "? "中是指定分隔符

awk? -F? " :/ "? ? :指定多分隔符

awk -F: '{print $NF}' 1.txt

awk -F ":/"? '{print $2}' 2.txt

awk模式+動作

awk? ?'NR==3{print? $3}'? file? ? :取出第三行的第三列

df? -h| awk '/sda3/,/sr0/{print $3}'

df? -h|awk? 'NR >3 &&NR<5{print $4}'

awk? '$2 ~ /^o/'? file? ? :篩選輸出第二列內容以字母 o?開頭的所有行

awk數字比較:

awk? ?-F? :? '$3>90'? file? :篩選第三列內容大于90的行

awk? ?-F? :? '$3>80&&$3<90'? file? :篩選第三列內容大于80的且小于90的行

這是我的個人學習筆記,主要用于記錄自己對知識點的理解和梳理。由于目前仍在學習探索階段,內容中難免存在理解偏差或表述疏漏,懇請各位大佬不吝賜教,多提寶貴意見~ 若有不同看法,歡迎理性交流探討,感謝包容與指正!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/91709.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/91709.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/91709.shtml

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

相關文章

損失函數和調度器相關類代碼回顧理解 |nn.CrossEntropyLoss\CosineAnnealingLR

目錄 nn.CrossEntropyLoss CosineAnnealingLR nn.CrossEntropyLoss loss_func nn.CrossEntropyLoss(reduction"sum") 定義nn.CrossEntropyLoss交叉熵損失函數&#xff0c;reduction參數設置為"sum"&#xff0c;表示將所有樣本的損失相加。reduction 參…

中國不同類型竹林分布數據

中國竹林分布的主要特點簡介&#xff1a;總體分布格局&#xff1a;核心區域&#xff1a; 主要分布在長江流域及以南的廣大亞熱帶和熱帶地區。北界&#xff1a; 大致以黃河流域為北界&#xff0c;但天然成片竹林在秦嶺-淮河一線以南才比較普遍。人工引種或特殊小環境下&#xff…

Sqlserver備份恢復指南-完整備份恢復

博主會用簡單清晰的方式&#xff0c;帶你系統學習使用T-SQL命令行的方式 給SQL Server 做備份與恢復。我們按照從零開始、逐步深入的路線來講解&#xff01; 完整備份恢復-差異增量備份恢復-事務日志備份恢復 &#x1f538; SQL Server 備份類型&#xff1a;類型說明完整備份&a…

AI 調酒師上崗!接管酒吧吧臺

7月29日&#xff0c;馬老師的 HHB 音樂酒吧在阿里巴巴西溪園區正式開業&#xff0c;開業這天迎來了一位神秘嘉賓“AI 調酒師”&#xff01; 這位 AI 調酒師不僅能根據你的MBTI、今日情緒、星座運勢、江湖花名等為你特調一杯雞尾酒&#xff0c;還能為這杯酒配上故事和詩文。 點…

【C++進階】一文吃透靜態綁定、動態綁定與多態底層機制(含虛函數、vptr、thunk、RTTI)

【C進階】一文吃透靜態綁定、動態綁定與多態底層機制&#xff08;含虛函數、vptr、thunk、RTTI&#xff09;作者&#xff1a;你的C教練 日期&#xff1a;2025-08-01目錄 靜態綁定 vs 動態綁定非虛函數的三大坑多態的四要素虛析構函數為什么必須寫&#xff1f;探秘 vptr/vftable…

VUE基礎知識2

1.計算屬性&#xff1a;使用計算屬性來描述依賴響應式狀態的復雜邏輯。關鍵字computed:{}//計算屬性&#xff0c;使用的時候和函數方法不一樣&#xff0c;不需要加括號。簡單來說就是模板方法的復雜邏輯放到了計算屬性中去。2.計算屬性緩存VS方法&#xff1a;計算屬性值會基于其…

在PyCharm中將現有Gitee項目重新上傳為全新項目

如果你想將當前本地的Gitee項目重新上傳為一個全新的Gitee項目&#xff08;保留本地代碼但斷開與原倉庫的關聯&#xff09;&#xff0c;可以按照以下步驟操作&#xff1a; 刪除舊的Git遠程倉庫關聯 打開PyCharm&#xff0c;進入你的項目 點擊頂部菜單 Git > Manage Remotes …

設計模式1:創建型模式

設計模式1&#xff1a;創建型模式 設計模式2&#xff1a;結構型模式&#xff08;編寫中&#xff09; 設計模式3&#xff1a;行為型模式&#xff08;編寫中&#xff09; 前言 設計模式是軟件開發中經過驗證的可復用解決方案&#xff0c;它們源自實踐、提煉于經驗&#xff0c;并…

React--》規劃React組件庫編碼規范與標準 — Button篇

目前前端組件化已經成為前端開發的核心思想之一&#xff0c;在這篇文章中將深入探討如何規劃一個規范的Button組件&#xff0c;讓它不僅能高效支持不同的功能需求還能確保跨項目、跨團隊的一致性&#xff0c;拋磚引玉的方式引出后面組件庫的其他組件的開發&#xff01; 目錄 B…

中科米堆CASAIM金屬件自動3d測量外觀尺寸三維檢測解決方案

金屬零部件的外觀尺寸檢測直接關系到產品的裝配精度和使用性能。CASAIM基于激光掃描技術的自動化三維掃描系統&#xff0c;為金屬加工行業提供了高效的自動3D測量解決方案&#xff0c;有效解決了傳統檢測方式效率低、覆蓋面有限等問題。激光掃描技術在金屬件測量中優勢明顯。與…

開源數據同步中間件,支持MySQL、Oracle

DBSyncer&#xff08;英[dbs??k??(r)]&#xff0c;美[dbs??k??(r) 簡稱dbs&#xff09;是一款開源的數據同步中間件&#xff0c;提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步場景。支持上傳插件自定義同步轉換業務&#xff0…

中英混合的語音識別XPhoneBERT 監督的音頻到音素的編碼器結合 f0 特征LID

完整項目包獲取點擊文末名片完成一個 Code-Switching&#xff08;中英混合&#xff09;的語音識別系統&#xff0c;整個流程如下思路進行&#xff1a; 163. (Step 1) 訓練音頻到音素的編碼器&#xff08;Audio → Phoneme Encoder&#xff09; 你已經完成了此部分。核心思路是利…

Param關鍵字的使用

1&#xff1a;當一個方法的某一個參數個數不固定的時候&#xff0c;可以使用Param2:可變的方法參數必須定義為數組類型3&#xff1a;該參數必須放在方法參數的最后&#xff0c;應且只有一個4&#xff1a;參數必須為一維數組5&#xff1a;params不能和ref和out組合使用namespace…

京東云輕量云服務器與騰訊云域名結合配置網站及申請SSL證書流程詳解

京東云輕量云服務器與騰訊云域名結合配置網站及申請SSL證書流程詳解 1. 需求及實現效果 1.1. 需求 先說一下我當前情況&#xff0c;我目前有一個京東云服務器和一個在騰訊云旗下買的域名&#xff08;不要問為啥一個在京東云&#xff0c;一個在騰訊云&#xff0c;那自然是哪個…

Python入門Day14:面向對象編程初步(OOP入門)

學習目標&#xff1a;理解面向對象編程&#xff08;OOP&#xff09;的基本思想&#xff1a;類&#xff0c;對象掌握類的定義&#xff0c;構造方法&#xff0c;實例屬性和方法熟悉self的含義與作用學會用類組織和封裝代碼&#xff0c;初步構建自己的“對象世界”一、什么是面向對…

日志和指標標簽規范化方案

好的&#xff0c;設計一個有效的日志和指標標簽規范化方案對于構建可觀測性強、易于維護、關聯分析順暢的系統至關重要。混亂的標簽命名會極大增加查詢、聚合、告警和故障排除的難度。 以下是一個綜合性的標簽規范化方案建議&#xff0c;結合了行業最佳實踐&#xff1a; 核心目…

Windows和Linux的tree工具

目錄 1.前言 2.Linux的tree工具 2.1.安裝tree 2.2.常用命令與參數 2.3.常見應用場景 2.4.注意事項 3.Windows的tree工具 3.1.基礎語法 3.2.核心參數詳解 3.3.常見應用場景 3.4.局限性與增強方案 4.Windows 與 Linux tree 的核心差異 5.tree工具優勢 5.總結 相關…

[echarts] 更新數據

option {title: { text: 銷售數據 },tooltip: { trigger: axis },legend: { data: [銷量, 庫存] },xAxis: {type: category,data: [襯衫, 羊毛衫, 雪紡衫]},yAxis: { type: value },series: [{ name: 銷量, type: bar, data: [5, 20, 36] },{ name: 庫存, type: line, data: […

通過el-image實現點擊文字查看圖片,及其圖片列表

場景一&#xff1a;表格中有時候會有點擊文字查看圖片的功能&#xff08;因為表格的一個單元格不方便顯示多個圖片&#xff09;如下圖所示&#xff1a;對于這個需求&#xff0c;我們可以應對的方案是&#xff1a;在文字旁邊寫一個el-image圖默認顯示多張圖片中的第一張&#xf…

003 實習(前端jquery之輪播圖,學校網頁)

web前端,查詢官網:w3schoolHTML:負責網頁結構&#xff08;頁面元素和內容&#xff09;CSS:負責網頁的表現&#xff08;網頁元素的外觀、位置等頁面樣式&#xff0c;如顏色&#xff0c;大小&#xff09;JAVAScript:負責網頁的行為&#xff08;交互效果&#xff09;<a>:超鏈…