Linux入門基礎:命令行文本處理工具
基於關鍵字搜索
命令grep用以基於關鍵字搜索文本
$ grep 'shuangde' /etc/passwd
$ find / -user shuangde | grep Video
-i 在搜索的時候忽略大小寫
-n 顯示結果所在行數
-v 輸出不帶關鍵字的行
-Ax 在輸出的時候包含結果所在行之後的指定行數
-Bx 在輸出的時候包含結果所在行之前的指定行數
基於列處理文本
命令cut用以基於列處理文本內容
$ cut -d : -f 1 /etc/passwd 用冒號分隔並顯示passwd文件的第一列(如果顯示多列: -f 1,2,3 )
$ grep shuangde /etc/passwd | cut -d: -f3
-d 指定分隔符(默認是TAB)
-f 指定輸出的列號
-c 基於字符進行分割
$ cut -c2-6 /etc/passwd
顯示第2~6個字符
文本統計
命令wc(word count)用以統計文本信息
$ wc file 輸出行數,單詞數,字節數
-l (lines) : 只統計行數
-w (words) : 只統計單詞數
-c (bytes):只統計字節數
-m (chars):只統計字符數
文本排序
sort命令:用以對文本的行內容進行排序(只支持英文和數字)
$ sort filename
-r 倒序排序
-n 基於數字進行排序
-f 忽略大小寫
-u 刪除重復行
-t c 使用c作為分隔符分割為列進行排序
-k x 當進行基於指定字符分割為列的排序時,指定基於那個列排序
刪除重復行
$ sort -u 可以刪除重復行
$ uniq 用以刪除相鄰的重復行
文本比較
diff 命令:一行行地比較兩個文本文件的差異
$ diff file1 file2
-i 忽略大小寫
-b 忽略空格數量的改變
-u 統一顯示比較信息(一般用以生成patch文件)
$ diff -u file1 file2 > final.patch
拼寫檢查
aspell 命令: 顯示檢查英文拼寫
$ aspell check file 檢查文件file內的單詞拼寫,可以進行改正
$ aspell list file 把文件file內錯誤單詞,並顯示出來
處理文本內容
tr 命令 : 改變或者刪除文本內容
刪除關鍵字
$ tr -d 'TMD' < filename 把T,M,D三個字母都刪掉
轉換大小寫
$ tr 'a-z' 'A-Z' < filename
搜索替換
sed命令: 用以搜索並替換文本(stream editor for filtering and transforming text.)
$ sed 's/linux/unix/g' file
$ sed '1,50s/linux/unix/g' file
$ sed -e 's/linux/unix/g' -e 's/hehe/haha/g' file 可以指定多個匹配模式
$ sed -f sededit file