Linux文本處理命令

1.關鍵字搜索命令grep
 grep命令與正則表達式有關;
最經常使用的功能是基於關鍵字搜索,但其功能遠不止如此;
例如:在a.txt中搜索帶關鍵字 my的幾行
grep my a.txt
grep和管道結合,處理輸出信息;能夠實現和上面相同的效果;
cat a.txt | grep my
 
grep的經常使用參數:
    -i    ->在搜索時忽略大小寫;
    -n    ->顯示結果所在的行數;
    -v    ->輸出不帶關鍵字的行,至關於反選;
    -Ax    ->在輸出的時候包含結果所在行以後的指定行數;x爲行數;
    -Bx    ->在輸出的時候包含結果所在行以前的指定行數;
 
2.基於列處理文本的命令 cut
cut的經常使用參數:
    -d    ->基於指定分隔符處理(默認Tab)
    -f    ->指定輸出的列號;    就是文本被分割後成多少列後,顯示第幾列,從1開始;例如f2就是顯示第二列;
    -c    ->基於字符進行切割 ;例如顯示第m到第n個字符:cut -cm-n a.txt;通常用於固定長度的切割;
例如:使用點「.」做爲分隔符,
cut -d: -f1 a.txt
結果:
 
3.統計文本信息命令 wc
wc是word count 單詞計數器的縮寫;
wc 可統計目標文件有多少個字符、多少行等等;
wc a.txt
經常使用參數:
    -l    ->只統計行數;
    -w    ->只統計單詞;
    -c    ->只統計字節數;
    -m    ->只統計字符數;
 
4.文本排序 sort
sort 是基於每一行來排序的
例如:
sort a.txt
結果:
 
經常使用參數:
    -r    ->倒序排序
    -n    ->基於數字排序
    -f    ->忽略大小寫
    -u    ->刪除重複行
    -t c    ->使用c做爲分隔符分割爲列進行排序
    -k x   ->-k自己是指定從第幾個字符開始進行排序;也能夠做爲基於列去分割時用哪一個列進行排序;
 
5.刪除重複行
使用 sort -u能夠刪除重複行;
命令 uniq 用來刪除重複的相鄰行;
 
6.文本比較命令diff
diff命令用來比較兩個文本的區別;
diff a.txt b.txt
 
參數:
    -i    ->忽略大小寫
    -b    ->忽略空格數量的改變
    -u    ->統一顯示比較信息;通常生成補丁path文件
diff -u a.txt b.txt >final.path
 
7.拼寫檢查命令aspell
只能檢查英文;用得少
 
8.處理文本內容命令 tr
tr是translate轉換的縮寫;主要有兩種用法;
 
刪除關鍵字:例如刪除a.txt中的tmd
tr -d tmd<a.txt
 
轉換大小寫:
tr 'a-z' 'A-Z'<a.txt
 
9.搜索替換命令 sed
使用正則表達式處理文件:sed 引號括起來的正則表達式 須要替換的文件
's/tmd/***/g' 表示在文件中搜索tmd 替換成 ***;其中g表示出現多個tmd時都去進行匹配
命令:
sed 's/tmd/***/g' a.txt
結果:
 
只替換1到5行:
sed '1,5s/tmd/***/g' a.txt
 
在一個命令中指定多種匹配方式:經過加 -e 參數
sed -e 's/tmd/***/g' -e 's/a/A/g' a.txt
 
經過 -f 參數,能夠指定從文件b.txt中讀取替換指令
sed -f b.txt a.txt
相關文章
相關標籤/搜索