【學習篇】Linux中grep、sed、awk

Linux 文本處理三劍客 – awk, sed, grep

grep過濾文本

https://zhuanlan.zhihu.com/p/561445240

grep 是 Linux/Unix 系統中的一個命令行工具,用于從文件中搜索文本或字符串。grep 代表全局正則表達式打印。當我們使用指定字符串運行 grep 命令時,如果匹配,則它將顯示包含該字符串的所在行,而不修改現有文件的內容。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

sed修改文本

參考鏈接:https://blog.csdn.net/qq_43773590/article/details/119711444
https://blog.csdn.net/m0_59388634/article/details/122047377

sed編輯器被稱作流編輯器。流編輯器會在編輯器處理數據之前基于預先提供的一組規則來編輯數據流。sed是Linux下一款功能強大的非交互流式文本編輯器,可以對文本文件進行增、刪、改、查等操作,支持按行、按字段、按正則匹配文本內容,靈活方便,特別適合于大文件的編輯。

sed 命令的命令格式是這樣的:
$ sed command file
其中,command 部分是 sed 命令的精髓,對 command 部分的掌握程度決定了你是不是 sed 高手。

command 部分可以分為兩塊知識:一塊是范圍設定,一塊是動作處理。

范圍設定,可以采用兩種不同的方式來表達:
指定行數:比如‘3,5’表示第 3、第 4 和第 5行;而‘5,$’表示第 5 行至文件最后一行。
模式匹配:比如/ ^ [^dD]/表示匹配行首不是以 d 或 D 開頭的行。

而動作處理部分,會提供很豐富的動作供你選擇,下面就來介紹幾個最常用的動作吧:
d:表示刪除行。
p:打印該行。
r:讀取指定文件的內容。
w:寫入指定文件。
a:在下面插入新行新內容。

sed的常用編輯命令
a :新增, a 的后面可以接字串,而這些字串會在新的一行出現(目前的下一行)~
c :取代, c 的后面可以接字串,整行替換
d :刪除,刪除指定行delete,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而這些字串會在新的一行出現(目前的上一行);
p :打印,亦即將某個選擇的數據印出。通常 p 會與參數 sed -n 一起運行~
s :取代,字符串替換,通常這個 s 的動作可以搭配正規表示法!例如 1,20s/old/new/g 就是啦!
=:輸出行號
r:將文件的內容讀入 read
w:將文本寫入文件 write

awk處理文本

https://blog.csdn.net/Dark_Tk/article/details/114844529

awk有3個不同版本: awk、nawk和gawk,未作特別說明,一般指gawk,gawk 是 AWK 的 GNU 版本。

sed命令常用于一整行的處理,而awk比較傾向于將一行分成多個“字段”然后再進行處理。awk信息的讀入也是逐行讀取的,執行結果可以通過print的功能將字段數據打印顯示。在使用awk命令的過程中,可以使用邏輯操作符“&&”表示“與”、“||”表示“或”、“!”表示“非”;還可以進行簡單的數學運算,如+、-、*、/、%、^分別表示加、減、乘、除、取余和乘方。

命令格式
awk 選項 ‘模式或條件 {操作}’ 文件 1 文件 2 …
awk -f 腳本文件 文件 1 文件 2 …

參考鏈接:https://zhuanlan.zhihu.com/p/51771974

awk ‘{pattern + action}’ {filenames}
盡管操作可能會很復雜,但語法總是這樣,其中 pattern 表示 AWK 在數據中查找的內容,而 action 是在找到匹配內容時所執行的一系列命令。花括號({})不需要在程序中始終出現,但它們用于根據特定的模式對一系列指令進行分組。 pattern就是要表示的正則表達式,用斜杠括起來。

awk語言的最基本功能是在文件或者字符串中基于指定規則瀏覽和抽取信息,awk抽取信息后,才能進行其他文本操作。完整的awk腳本通常用來格式化文本文件中的信息。

awk常見的內建變量
FS:列分割符。指定每行文本的字段分隔符,默認為空格或制表位。與"-F"作用相同
NF:當前處理的行的字段個數。
NR:當前處理的行的行號(序數)。
$0:當前處理的行的整行內容。
$n:當前處理行的第n個字段(第n列)。
FILENAME:被處理的文件名。
RS:行分隔符。awk從文件上讀取資料時,將根據RS的定義把讀取的資料切割成許多條記錄,而awk一次僅讀入一條記錄,以進行處理。預設值是’\n’

awk中同時提供了print和printf兩種打印輸出的函數。

其中print函數的參數可以是變量、數值或者字符串。字符串必須用雙引號引用,參數用逗號分隔。如果沒有逗號,參數就串聯在一起而無法區分。這里,逗號的作用與輸出文件的分隔符的作用是一樣的,只是后者是空格而已。

printf函數,其用法和c語言中printf基本相似,可以格式化字符串,輸出復雜時,printf更加好用,代碼更易懂。

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

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

相關文章

Mysql并發時常見的死鎖及解決方法

使用數據庫時,有時會出現死鎖。對于實際應用來說,就是出現系統卡頓。 死鎖是指兩個或兩個以上的事務在執行過程中,因爭奪資源而造成的一種互相等待的現象。就是所謂的鎖資源請求產生了回路現象,即死循環,此時稱系統處于…

星河創新,開拓新紀!2023“星河產業應用創新獎”報名全面開啟!

科技的浪潮洶涌而至,人工智能正悄無聲息地滲透進我們生活的每一個角落,成為推動社會奔騰向前的強大引擎。 隨著大模型時代到來,更多的創新者涌現出來,他們正積極探索AI與實體的深度融合,解決行業難題,開拓…

算法的奧秘:種類、特性及應用詳解(算法導論筆記1)

算法,是計算機科學領域的靈魂,是解決問題的重要工具。在算法的世界里,有著各種各樣的種類和特性。今天,我將帶各位踏上一段探索算法種類的旅程,分享一些常見的算法種類,并給出相應的實踐和案例分析。希望通…

c# 微信小程序支付,訂單錄入發貨

微信改動,大家一起改,來吧 private string GetAccessToken(string openid){string AppID "";string AppSecret "";string url "https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credential&appid"AppI…

華納云:Linux每天自動備份mysql數據庫怎么實現

在 Linux 系統中,你可以使用 cron 任務來定期執行 MySQL 數據庫備份。以下是一個簡單的步驟,演示如何設置每天自動備份 MySQL 數據庫: 創建備份腳本: 創建一個 Shell 腳本,其中包含備份 MySQL 數據庫的命令。假設腳本名…

【目標檢測】保姆級別教程從零開始實現基于Yolov8的一次性筷子計數

前言 一,環境配置 一,虛擬環境創建 二,安裝資源包 前言 最近事情比較少,無意間刷到群聊里分享的基于百度飛漿平臺的一次性筷子檢測,感覺很有意思,恰巧自己最近在學習Yolov8,于是看看能不能復…

前端JS數據時間排序

一、sort()方法 var data [ { name:‘1’, time:‘2019-04-26 10:53:19’ }, { name:‘2’, time:‘2019-04-26 10:51:19’ },{ name:‘3’, time:‘2019-04-26 11:04:32’ },{ name:‘4’, time:‘2019-04-26 11:05:32’ } ] data.sort(function(a,b){ return a.time < b…

js進階筆記之作用域

目錄 全局作用域 局部作用域 函數作用域 塊作用域 作用域鏈 閉包 垃圾回收機制 作用域&#xff08;scope&#xff09;規定了變量能夠被訪問的“范圍”&#xff0c;離開了這個“范圍”變量便不能被訪問&#xff0c;作用域分為全局作用域和局部作用域。 全局作用域 <…

【Go語言從入門到實戰】反射編程、Unsafe篇

反射編程 reflect.TypeOf vs reflect.ValueOf func TestTypeAndValue(t *testing.T) {var a int64 10t.Log(reflect.TypeOf(a), reflect.ValueOf(a))t.Log(reflect.ValueOf(a).Type()) }判斷類型 - Kind() 當我們需要對反射回來的類型做判斷時&#xff0c;Go 語言內置了一個…

【23真題】最簡單的211!均分141分!

今天分享的是23年河海大學863的信號與系統試題及解析。 我猜測是由于23年太簡單&#xff0c;均分都141分&#xff0c;導致24考研臨時新增一門數字信號處理&#xff01;今年考研的同學趕不上這么簡單的專業課啦&#xff01; 本套試卷難度分析&#xff1a;平均分為102和141分&a…

ECharts與DataV:數據可視化的得力助手

文章目錄 引言一、ECharts簡介優勢&#xff1a;劣勢&#xff1a; 二、DataV簡介優勢&#xff1a;劣勢&#xff1a; 三、ECharts與DataV的聯系四、區別與選擇五、如何選擇根據需求選擇技術棧考慮預算和商業考慮 結論我是將軍&#xff0c;我一直都在&#xff0c;。&#xff01; 引…

LeetCode題解:13. 羅馬數字轉整數,哈希表,JavaScript,詳細注釋

原題鏈接&#xff1a;13. 羅馬數字轉整數 解題思路&#xff1a; 本題涉及到的羅馬數字都是唯一的&#xff0c;因此可以創建一個哈希表&#xff0c;存儲羅馬數字和整數的對應關系。遍歷s&#xff0c;分別截取從i開始的2位和1位字符串&#xff0c;查看其在哈希表中的羅馬數字對…

pytest調用其他測試用例方法

pytest調用其他測試用例方法 一. 第一種方法&#xff0c;測試用例前置pytest.fixture() def test1():print("我是用例一") pytest.fixture(test1) def test2():print("我是用例二")二.第二種方法,如果不是同一文件中測試用例調用或者同一py文件中 def t…

3.10-容器的操作

這一節講解一下對于container我們可以進行哪些操作&#xff1f; 可以使用以下命令來停止正在運行的Docker容器&#xff1a; docker container stop <CONTAINER ID> 關于運行中的容器&#xff0c;我們可以進行的操作&#xff1a; 第一個是docker exec命令&#xff0c;這個…

NLP實踐——LLM生成過程中防止重復循環

NLP實踐——LLM生成過程中防止重復 1. 準備工作2. 問題分析3. 創建processor3.1 防止重復生成的processor3.2 防止數字無規則循環的processor 4. 使用 本文介紹如何使用LogitsProcessor避免大模型在生成過程中出現重復的問題。 1. 準備工作 首先實例化一個大模型&#xff0c;…

實時語音克隆:5 秒內生成任意文本的語音 | 開源日報 No.84

CorentinJ/Real-Time-Voice-Cloning Stars: 43.3k License: NOASSERTION 這個開源項目是一個實時語音克隆工具&#xff0c;可以在5秒內復制一種聲音&#xff0c;并生成任意文本的語音。 該項目的主要功能包括&#xff1a; 從幾秒鐘的錄音中創建聲紋模型根據給定文本使用參考…

數字化轉型沒錢?沒人?沒IT?低代碼平臺輕松幫你搞定

隨著數字技術的不斷滲透&#xff0c;數字化已經不僅僅是一個趨勢&#xff0c;而是深入人心的日常生活部分。在這樣的時代背景下&#xff0c;企業面臨的挑戰也愈發嚴峻&#xff1a;如何不斷創新&#xff0c;滿足用戶日益增長的業務需求&#xff1f; 傳統的開發方式&#xff0c;隨…

基于單片機設計的大氣氣壓檢測裝置(STC89C52+BMP180實現)

一、前言 本項目設計一個大氣氣壓檢測裝置&#xff0c;該裝置以單片機為基礎&#xff0c;采用STC89C52作為核心控制芯片&#xff0c;結合BMP180模塊作為氣壓傳感器。大氣氣壓&#xff0c;也就是由氣體重力在大氣層中產生的壓力&#xff0c;其變化與天氣預報、氣象觀測以及高度…

江蘇某市人民醫院實現IT基礎資源統一監控

一、背景介紹 江蘇某市人民醫院是一家擁有豐富醫療資源和龐大患者群體的醫療機構。隨著醫療業務的不斷發展&#xff0c;其IT系統的規模和復雜性也不斷增加&#xff0c;涉及各類IT資源&#xff0c;包括服務器、網絡設備、數據庫、應用軟件等。為了提高IT系統的可靠性和穩定性&am…

11.7統一功能處理

一.登錄攔截器 1.實現一個普通的類,實現HeadlerInterceptor接口,重寫preHeadler方法. 2.將攔截器添加到配置中,并設定攔截規則. 二.訪問前綴添加 方法1: 方法2:properties 三.統一異常處理 以上返回的是空指針異常,如果是別的異常就不會識別,建議加上最終異常 . 四.統一數據格…