Linux三劍客與管道使用

2022-10-08 18:24:14 字數 2633 閱讀 7535

什麼是管道:

linux提供管道符「|」將兩個命令隔開,管道符左邊命令的輸出就會作為管道符右邊命令的輸入

示例:echo 「hell0 1234」|grep 『hello』

正規表示式就是記錄文字規則的**

舉例hi單詞後面有lucy單詞

hi  123wo lucy 321  :\bhi\b.*lucy\b

以0開頭,然後兩個數字,然後連字元「-」最後8個數字

020-66789023 0\d-\d

手機號碼

18890012345 1[\d]

電子郵件

[email protected] \w+([- +.]\w)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

規則:[…...] 匹配括號中任何一字元

[^…...] 匹配不在括號中的任何一字元

\w 匹配(a~z,a~z,0~9)

\w 匹配任何乙個空白字元

\s 匹配任何乙個非空白字元

\s 與任何非單詞字元匹配

\d 匹配任何乙個數字

\d 匹配任何乙個非數字

[\b] 匹配乙個退格鍵字母

最少匹配前面表示式n次,最大為m次

最少匹配前面表示式n次

正好匹配前面表示式n次

? 匹配前面表示式0或1次

+ 最少匹配前面表示式1次

* 最少匹配前面表示式0次

| 匹配前面或後面表示式

(…) 在單元中組合專案

^ 匹配字串開頭

$ 匹配字串結尾

\b 匹配字元邊界

\b 匹配非字元邊界的某個位置

定義:根據使用者指定的模式(pattern)對目標文字進行過濾,顯示被模式匹配到的行

命令形式:grep[選項]pattern[file…]

選項:-v 顯示不被pattern匹配到的行

-i 忽略字元大小寫

-n 顯示匹配的行號

-c 統計匹配的行數

-o 僅顯示匹配到的字串

-e 使用ere,相當於egrep

例如1、        

查詢檔案內容包含root的行數

grep –n root test.txt

2、        

查詢檔案內容不包含root的行

grep –nv root test.txt

3、        

查詢以s開頭的行

grep ^s test.txt

4、        

查詢以n結尾的行

grep n$ test.txt

命令形式:sed[-hn..][-e][-f][file]

-h:顯示幫助

-n:僅顯示script處理後的結果

-e以選項中指定的script來處理輸入的文字檔案

-f常用動作

a:新增 sed -e 『4 a newline』       在第四行後新增一行newline

c:取代 sed -e 『2,5c no 2-5 number』      no 2-5 number取代2-5行的內容

d:刪除 sed -e 『2,5d』          刪除2到5行的內容

i:插入 sed -e 『2i newline』    在第二行前面插入newline

p:列印 sed -n 『/root/p』          列印匹配到root行的內容

s:取代 sed -e 『s/old/new/g』    用new取代old

實戰檢視幫助

man sed

sed –h

在第四行後新增新字串

sed –e 『4 a newline testfile』 test.txt

全域性替換

sed –e 『s/root/hello/g』 test.txt

直接修改檔案內容

sed -i 『s/root/hello/g』 test.txt

定義:把檔案逐行讀入,以空格為預設分隔符將每行切片,切開的部分再進行後續的處理

命令形式:awk 』pattern+action

』 [file]

-pattern 正規表示式

-action對匹配到的內容執行命令(預設為輸出每行內容)

常用引數

filename awk瀏覽的檔名

begin 處理文字之前要執行的操作

end 處理文字之後要執行的操作

fs 設定輸入域分隔符,等價於命令列-f 選項

nf 瀏覽記錄的域的個數(列數)

nr 已讀記錄數(行數)

ofs 輸出域分隔符

ors 輸出記錄分隔符

rs 控制記錄分隔符

$0 整條記錄

$1 表示當前行的第乙個域……以此內推

實戰搜尋etc/passwd有關root關鍵字的所有行,並顯示對應的shell

awk –f:』/root/』/tec/passwd

列印/etc/passwd/的第二行資訊

awk -f :』nr==2』 /etc/passwd

使用begin加入標題

awk 『begin 』 /etc/passwd

自定義分隔符

echo 「111 222|333 444|555 666」 | awk

begin

Linux三劍客與管道

管道 正則 三劍客grep sed awk之間的關係 管道 左邊命令的輸出是右邊命令的輸入 比如 echo hello1234 grep hello 正則匹配字串的工具 正規表示式就是記錄文字規則的 小測試工具推薦 b 單詞 b 漢堡包 夾住只能匹配裡面的單詞 注意是右斜槓 ba w b b w b...

Linux命令三劍客

grep的簡單使用 grep的主要作用 文字搜尋工具,根據使用者指定的 模式 對目標文字逐行進行匹配檢查 列印匹配到的行 grep的工作模式 由正規表示式字元及文字字元所編寫的過濾條件 grep的用法 grep options pattern file options v 顯示不被pattern匹配...

Linux三劍客的基本使用

linux命令三劍客,awk,最擅長取列,sed最擅長取行,grep擅長過濾,是linux運維人員必會的三個命令。awk是一種優良的文字處理工具,linux及unix環境中現有的功能最強大的資料處理引擎之一。這種weinberger和brian kernighan三個人的姓的縮寫。awk 程式指令碼...