Linux命令行文本處理工具
Linux命令行文本處理工具
基於關鍵字搜索
命令grep用以基於關鍵字搜索文本
命令格式grep "關鍵字",並且通常和管道一起使用,如ls -l | grep "test". 以下是常用的參數
-i 在搜索的時候忽略大小寫
-n 顯示結果所在的行
-v 輸出不帶關鍵字的行
-Ax 在輸出的時候包含結果所在行之後(after)的指定行數
-Bx 在輸出的時候包含結果所在行之前(before)的指定行數
基於列處理文本
命令cut用以基於列文本內容
使用示例:cut -d: -f1 /etc/passwd,即用':'當成分割符,輸出第一列,分割的是/etc/passwd文件, 以下是常用的參數
-d 指定分割字符(默認是TAB)
-f 指定輸出的列號
-c 基於字作進行切割, 如cut -c2-6 /etc/passwd即輸出/etc/passwd的每一行的第2到第6個字符
文本統計
命令wc用勁統計文本信息
使用示例:比如wc ok.cpp,以下是顯示的結果和解釋
9 23 96 ok.cpp
行數,共9行 單詞數,共23個單詞 字節數,共96個字節 文件名,叫ok.cpp
以下是常用參數
-l 只統計行數
-w 只統計單詞數
-c 只統計字節數
-m 只統計字符數
文本排序
命令sort用以對文本內容進行排序
使用示例: 如sort file
-r 進行倒序排序
-n 基於數字進行排序
-f 忽略大小寫
-u 刪除重復行
-t c 使用c作為分隔符為列進行排序
-k x 指定用哪個key進行排序,通常用於, 進行基於指定字符分割為列的排序時,指定基於那個列排序
刪除重復行
命令sort -u 可以用以刪除重復行
命令uniq用以刪除重復的相鄰行
文本比較
命令diff用以比較兩個文件的區別
以下是常用的參數
-i 忽略大小寫
-b 忽略空格數量的改變
-u 統一顯示比較的信息(一般用以生成patch文件)
檢查拼寫
命令aspell用以顯示檢查英文拼寫
處理文本內容
命令tr用以處理文本內容
刪除關鍵字
tr -d "TMD" <file
轉換大小寫
tr 'a-z' 'A-Z' file
搜索替換
命令sed用以搜索並替換文件,這裡有一個很好的教程, 以下列出一些常見的用法
sed 's/old/new/g' file
把file裡單詞old替換為new,如果同一行出現多個old,把每個old都改為new
sed '1,50s/old/new/g' file
把1到50行裡每行出現的old改成new, 如果同一行出現多個old,把每個old都改為new
sed -e 's/old1/new1/g' -e's/old2/new2/g' file
執行's/old1/new1/g' 和 's/old2/new2/g' 兩個命令
sed -f sedsrcipt file
對file執行sedscipt腳本中的命令