Linux Note 15 文本處理

基本關鍵字搜索

grep keyord
grep Minecraft
find / -user video 2> errorReport | grep video

參數

-i 不區分大小寫
-n 顯示所在行數
-v 輸出不帶關鍵字的行(取反)
-Ax 輸出包含結果所在行之后的x行
-Bx 輸出包含結果所在行之前的x行

基于列文本處理

cut -d: -f3 /etc/passwd
grep ldh /etc/passwd | cut -d: -f3

參數

d 指定分割符
f 指定第幾列
c 指定字符,如-c2-6 輸出第2到第6個字符

文本統計

wc 文本名稱
參數

-l 只顯示行數
-w 統計單詞數
-c 統計字節數
-m 統計字符數

文本排序

sort 文本名
參數

-r 倒序排序
-n 基于數字進行排序
-f 忽略大小寫
-u 刪除重復行
-t c 使用c作為分割符,分割成列進行排序
-k x 當進行基于指定字符作為分隔符為列的排序時,指定基于那個列排序

刪除重復行

sort -u 文件名
uniq 文件名     只刪除相鄰的重復行

文本比較

diff 用來比較兩個文本的區別
diff 文本1 文本2
參數

-i 忽略大小寫
-b 忽略空格數量的改變
-u 統一顯示比較信息(一般用以生成patch文件)
diff -u 文件1 文件2 > file.patch

處理文本內容

  • 刪除關鍵字
    tr -d 'TMD' < fileName
  • 轉換大小寫
    tr 'a-z' 'A-Z' < fileName
    注意這里必須使用重定向 <
    也可以試一下
    tr '1-6' 'A-Z' < fileName看看會發生什么。

搜索替換

sed用以搜索和替換文本
sed 's/要替換的文本/替換文本/g' 文本名稱
其中,
g代表替換所有,否則只替換搜索到的第一個
sed '1,50s/要替換的文本/替換文本/g' 文本名稱
只替換1到50行
參數

-e 可以同時指定多個替換
-f sededit 調用sededit文件里的sed命令

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容