Linux命令 grep awk sed詳解

2021-09-28 18:10:59 字數 1813 閱讀 9585

grep [options] regex [file...]
regex 是指乙個正規表示式

範例:

# 匹配以 bz 或 gz 或 zip 開頭的字串行

grep -eh '^(bz|gz|zip)' dirlist*.txt

# 匹配以 以bz開頭 或包含 gz 或 包含zip 字串行

grep -eh '^bz|gz|zip' dirlist*txt

#特定字元

grep 'a' txt

#範圍內字元

grep '[a-z]' txt

grep '[a-za-z0-9]' txt

grep '[^0-9]' txt 取反,除去數字之外的字元

#任意字元

grep '.' passwd

awk '條件 ' 檔案

awk '$9 == 500 ' access.log

awk 的內建變數:

範例:

# 指定 : 為分隔符

awk -f ":" '' xx.txt

# 檢視 ett.txt 檔案(共 100 行)內第 20 到第 30 行的內容

awk 『nr>19&&nr<31』 ett.txt

awk 『』 ett.txt

#輸出第24行並且加行號

awk 『nr==24 』 ett.txt

#以:為分隔符,列印第5列以s開頭的一整行

awk -f ":" '$5~/^s/' ett.txt

#對csv檔案的第2列的倒數300行求和,並將結果儲存到csv

awk -f ',' 'end;}' test.csv >> min.csv

#返回第一列中類別相同,第三列中最大的行資料

awk '}end' ett.txt

#統計第一列每個類別的佔比

awk ' end }' ***.txt

sed [options] 'command' file(s)
引數:

-n取消預設輸出

-r使用擴充套件正則

-i刷到磁碟

-e執行多條sed指令

-f指令放在檔案裡

sed替換標記:

表2 sed-command a

追加i插入d

刪除c替換指定的行

s替換每一行匹配的第乙個字元

g替換每一行的全部

w另存檔案

e執行bash命令

q不繼續往下讀取p輸出

範例:

#在test.txt第一行前插入

sed "1 i this is a test file" test.txt

#test.txt最後一行追加

sed "$ a this is the end of file" test.txt

#刪除test.txt第二行

sed "2d" test.txt

#刪除test.txt符合正規表示式/fish的行

sed "/fish/d" test.txt

#將text.txt中love替換為like

sed "s/love/like/g" test.txt (/g表示全域性匹配)

#輸出test.txt的第5-7行

sed -n "5,7p" test.txt (-n的作用就顯示出來了,可以去除-n檢視效果)

linux命令 wc命令

linux系統中的wc word count 命令的功能為統計指定檔案中的位元組數 字數 行數,並將統計結果顯示輸出。1 命令格式 wc 選項 檔案.2 命令功能 統計指定檔案中的位元組數 字數 行數,並將統計結果顯示輸出。該命令統計指定檔案中的位元組數 字數 行數。如果沒有給出檔名,則從標準輸入讀...

Linux命令 PS命令

centos上程序有5種狀態 1.執行 正在執行或在執行佇列中等待 2.中斷 休眠中,受阻,在等待某個條件的形成或接受到訊號 3.不可中斷 收到訊號不喚醒和不可執行,程序必須等待直到有中斷發生 4.僵死 程序已終止,但程序描述符存在,直到父程序呼叫wait4 系統呼叫後釋放 5.停止 程序收到sig...

Linux命令 lsof命令

lsof 是遵從unix 哲學的典範,它只做一件事情,並且做的相當完美 它可以列出某個程序開啟的所有檔案資訊。開啟的檔案可能是普通的檔案,目錄,nfs檔案,塊檔案,字元檔案,共享庫,常規管道,明明管道,符號鏈結,socket流,網路socket,unix域socket,以及其它更多。因為unix系統...