Linux文字過濾

2021-08-20 03:41:55 字數 2668 閱讀 5487

文字流

shell 使用三種標準的 i/o 流,分別為:

stdin 是標準輸入流,為命令提供輸入,檔案描述符為0

stdout 是標準輸出流,顯示來自命令的輸出,檔案描述符為1

stderr 是標準錯誤流,顯示命令中的錯誤輸出,檔案描述符為2

輸出重定向

作用:輸出預設是到顯示器上,重定向可以將輸出寫到檔案中

命令 > 檔名 以覆蓋方式將正確結果寫入檔案

命令 >> 檔名 以追加方式將正確結果寫入檔案

命令 2> 檔名 以覆蓋方式將錯誤資訊寫入檔案

命令 2>> 檔名 以追加方式將錯誤資訊寫入檔案

命令 &> 檔名 以覆蓋方式將正確結果或錯誤資訊寫入檔案

命令 &>> 檔名 以追加方式將正確結果或錯誤資訊寫入檔案

命令 >檔名 2>&1 以覆蓋方式將正確結果或錯誤資訊寫入檔案

命令 >>檔名 2>&1 以追加方式將正確結果或錯誤資訊寫入檔案

命令 >> 檔案1

2>> 檔案2 以追加方式將正確結果寫入檔案1,將錯誤結果寫入檔案2

命令 &> /dev/

null 將結果丟入黑洞

管道符

作用:實現多條命令同時執行

命令1;命令2 兩條命令順序執行

命令1 && 命令2 命令1正確執行,命令2才會執行

命令1|| 命令2 命令1沒有正確執行,命令2才會執行

命令1| 命令2 命令1的輸出作為命令2的輸入

| sort

split

作用:對檔案按行進行分割形成新的檔案 

格式:split -l rownum 舊檔名 新檔名的字首

eg :split -l 2 test.txt new 每兩行對檔案進行分割,形成新檔案

wc

作用:統計檔案大小

wc -l 檔名 統計檔案有多少行

wc -w 檔名 統計檔案有多少個單詞

wc 檔名 顯示結果從左到右依次為行數、單詞數、位元組數、檔名

head

作用:列印檔案的指定行

egcat test|head 列印前十行

cat test|head -n 2 列印前兩行

cat test|head -n -2 不列印最後兩行

tail

作用:列印檔案指定行

egtail test.txt 列印後十行

tail -n 2 test.txt 列印後兩行

tail -n +2 test.txt 不列印前1行

nl

作用:顯示檔案的內容並顯示行號

格式:nl 檔名

sort

格式:sort 選項

選項-f:忽略大小寫

-r:降序排列

-n:以數值型進行排序,預設為字串型排序

-t:指定分割符,預設為製表符

-k n [,m]:按第n個字段到第m個字段進行排序,如果不指定m,則到行尾

egsort -t ',' -rn -k1 -k5 -k9 -k11 4.log 多列排序

cut

作用:用於字元擷取

格式:cut 選項

選項-f column 提取第幾列

-d 分割字元 按照指定字元分割列,不支援以空格分割!

egcut -f

2,4-d

":" test.txt 以分號作為分割符,擷取第二列和第四列

uniq

作用:過濾掉重複的行,前提是重複行必須相鄰,所以常常與sort一起使用 

格式:uniq [選項]

選項 -i 忽略大小寫

-c 顯示每行資料出現的次數

-d 只顯示重複的行

-u 只顯示唯一的行

tr

作用:對輸入的內容進行字元替換、字元刪除、以及重複字元的壓縮。tr命令只接受標準輸入

tr 'set1'

'set2' 將set1中的字元替換為set2中對應的字元

egecho 「hello world」| tr 'a-z'

'a-z' 將大寫字元轉換為小寫字元

echo

12345 | tr '0-9'

'9876543210' 實現數字的替換,進行加密

tr -d 『set』 將set中相應的字元刪除

egecho 「hello 123 」| tr -d

'0-9' 將輸入中的數字刪除

tr -s

'set' 將set中重複的字元刪除

egecho 「hello world are you ok 」tr -s

' ' 將輸入中的重複的空格刪除,只保留乙個

Linux文字過濾命令grep awk sed

grep的使用 一 grep一般格式 grep 選項 基本正規表示式 檔案 這裡的正規表示式可以為字串。在grep命令中輸入字串引數時,最好將其用雙引號括起來。呼叫變數時也可以使用雙引號。在呼叫模式匹配事,應使用單引號。二 grep常用選項 c只輸出匹配行的計數。i不區分大小寫 只用於單字元 h查詢...

Linux過濾文字並顯示過濾文字的上下文

grep a 3 ergo file.log 顯示file.log檔案中匹配ergo字串的那行以及後3行 grep b 3 ergo file.log 顯示file.log檔案中匹配ergo字串的那行以及前3行 grep c 3 ergo file.log 顯示file.log檔案中匹配ergo字串...

Linux命令(八)過濾文字 grep

grep是乙個強大的文字搜尋工具命令,用於查詢檔案中符合指定格式的字串,支援正規表示式。如不指定任何檔名稱,或是檔名為 則gerp命令從標準輸入裝置中讀取資料。grep家族包括grepegrep和fgrep。egrep 和 fgrep 命令只跟 grep 有很小的不同。egrep 是 grep 的擴...