Linux文字分析處理命令大全

2021-10-09 02:27:21 字數 2120 閱讀 3145

一文帶你從零掌握linux文字分析處理命令,包括cat、sort、uniq、cut、paste、join、comm、diff、patch、tr、sed、aspell。

cat——進行檔案之間的拼接並且輸出到標準輸出

常用選項:

-a,顯示文字中的控制字元,如tab和換行

-n,給文字行新增行號

-s,禁止輸出多個空白行

sort——對文字行進行排序

sort可以把多個檔案合併為乙個有序的檔案 >

選項:-b(–ignore-leading-blanks)忽略每行開頭空格,從第乙個非空白字元開始排序

-f(–ignore-case)讓排序不區分大小寫

-n(–numeric-sort)基於字串的數值來排序,而不是字母值

-r(–reverse)按相反順序排序。結果按照降序排列,而不是公升序。

-k(–key=field1[,field2])從對field1到field2之間的字元排序。

-m(–merge)把每個引數看作是預排序的檔案。把多個檔案合併成乙個排好序的檔案,不執行額外的排序

-o(–output=file)輸出到檔案

-t(–field-separator=char)自定義域分隔字元。預設域由空格或製表符分隔

幾個應用場景:

#du命令指定檔案或目錄所占用的磁碟空間,結合sort -n和-r選項,輸出占用磁碟空間最大的使用者

du -s /usr/share/* |

sort -nr |

head

#對ls輸出的檔案大小進行排序

ls -l /usr/bin |

sort -nr -k 5 |

head

#可以有多個-k選項,即指定多個排序關鍵值

ls -l /usr/bin |

sort --key=6r --key=5nr |

head

uniq——通知或省略重複的行

給定乙個排好序的檔案,可以刪除任意重複行,常與sort一塊使用來清理重複輸出。

選項:-c 輸出所有重複行,每行開頭顯示重複次數

-d 只輸出重複行,而不是特有的文字行

-f n 忽略每行開頭的n個字段,字段之間有且只能由空格分隔

-i 在比較文字行的時候忽略大小寫

-s n跳過每行開頭的n個字元

-u 只輸出獨有的文字行,預設。

cut——刪除文字行中的部分內容

從文字行中抽取文字,可以接受多個檔案引數或標準輸入。cut抽取文字相當不靈活,最好從其他程式產生的檔案中抽取文字,而不適用於人輸入的文字。

選項:-c char_list 從乙個文字行中抽取由char_list定義的文字。這個列表可能是由乙個或多個逗號分隔開的數值區間組成

-f field_list 從文字行中抽取乙個或多個由field_list定義的字段。這個列表可能包括乙個或多個字段,或由逗號分隔開的字段區間

-d delim_char 指定-f選項後,使用delim_char做欄位分隔符。預設字段之間由單個tab字元分隔開

–complement 抽取整個文字行,除了那些由-c/或-f選項指定的文字

#使用-d指定:為分隔符

cut -d ':' -f 1 /etc/passwd |

head

paste——合併文字行

與cut相反,會新增乙個或多個文字列到檔案中。

應用場景:將檔案中的兩個字段調換位置。

join——連線兩檔案中具有相同欄位的行 

類似關係型資料庫,將多個享有共同關鍵域的**資料結合起來。預設情況join命令使用空白字元作為輸入欄位的界定符,乙個空格作為輸出欄位的界定符。可以通過選項修改。

comm——逐行比較兩個已排序檔案 

diff——逐行比較檔案 

patch——對原檔案進行diff操作

tr——替換或刪除字元 

sed——用於文字過濾和轉換的流編輯器 

aspell——互動式拼寫檢查工具

其他還包括split(把檔案分割成碎片)、csplit(基於上下文把檔案分割成碎片)、sdiff(併排合併檔案差異)

常用linux 文字分析命令摘要一

有時我們需要對日誌等資訊進行統計,如某些資料的的平均值,方差,變異係數等。less a.txt awk end sort rn k 1 t awk f else end 另外一種更加快速簡單的統計方法。less a.txt awk end 檢視所有jar檔案是否包含某個類。ls jar awk 統計...

Python文字分析及預處理

文字分析的基本功能學習,包括句子切分 單詞切分 大小寫轉化 刪除停用詞 題幹提取 詞性還原。基本功能學習 句子切分,單詞切分 import nltk a s nltk.sent tokenize a print s w for i in s for j in nltk.word tokenize i...

python,文字分析

記得將當前目錄設定為檔案目錄 spyder編譯器的右上角,本人用spyder filename input 請輸入你的檔名 file open filename txt try for eachline in file print eachline except print 開啟檔案出錯 final...