shell的幾種常用工具

最近在學習shell腳本語言,在學習的過程中瞭解了關於shell的幾種常用工具,就總結了一下。

1、sort

  • 功能:顧名思義,sort是對文本進行排序操作的。
  • 原則:sort將文件的每一行作爲一個單位,相互比較,比較原則是從首字符向後,依次按ASCII碼值進行比較, 後將他們按升序輸出。

man手冊解釋:
這裏寫圖片描述
常用選項介紹:

選項 說明
-r 將文本文件降序輸出
-u 在輸出行中去掉重複行
-n 以數值來進行升序排序
-t 設定間隔符
-k 用來對指定列數進行排序,通常與-t一起使用
-f 將小寫字母都轉換爲大寫字母來進行比較,亦即忽略大小寫
-c 會檢查文件是否已排好序,如果亂序,則輸出第一個亂序的行的相關信息,後返回1
-C 會檢查文件是否已排好序,如果亂序,不輸出內容,僅返回1
-b 會忽略每一行前面的所有空白部分,從第一個可見字符開始比較

用法示例:
(1)使用sort對文件內容進行升序、降序排序:
這裏寫圖片描述
(2)去掉重複行升序、降序:
這裏寫圖片描述
(3)按指定列進行排序
這裏寫圖片描述
這裏寫圖片描述

2、uniq

man手冊解釋:
這裏寫圖片描述
主要用來去除文本中的重複行
用法示例:
這裏寫圖片描述
常用語法

選項 說明
-c 顯示輸出中,在每行行首加上本行在文件中出現的次數。它可取代-u和-d選項。
-d 只顯示出現重複的行
-u 只顯示文件中不重複的各行

示例:
這裏寫圖片描述

3、利用sort和uniq求兩個文件的交集、並集和補集

分別建立兩個文件:
這裏寫圖片描述
求兩個文件的交集:
這裏寫圖片描述
求兩個文件的並集:
這裏寫圖片描述
求兩個文件的補集(file1-file2):
這裏寫圖片描述

4、paste

man手冊說明:
這裏寫圖片描述
**功能:**paste單詞意思是粘貼。該命令主要用來將多個文件的內容合併。paste將按行將不同文件行信息放在一行。缺省情 況下, paste連接時,用空格或tab鍵分隔新行中不同文本
將file1和file2內容合併:
這裏寫圖片描述
常用選項:
(1) -d: 指定域分隔符
指定域分隔符爲“:”,併合並兩個文件內容
這裏寫圖片描述
(2)-s: 將每個文件合併成行而不是按行粘貼
這裏寫圖片描述
(3)- 對每一個(-),從標準輸入中讀一次數據。默認使用空格 或者tab作域分隔符,該選項可以定製輸出格式
這裏寫圖片描述

5、cut

man手冊說明:
這裏寫圖片描述
**功能:**cut 命令從文件的每一行剪切字節、字符和字段並將這些字節、字符和字段寫至標準輸出。 如果不指定 File 參數, cut 命令將讀取標準輸入。必須指定 -b、-c 或 -f 標誌之一。
常用選項:
(1)-b :以字節爲單位進行分割。
這裏寫圖片描述
(2)-c :以字符爲單位進行分割
這裏寫圖片描述
對於字符處理,-c和-b似乎沒有什麼區別,但當你處理漢字的時候,就會有所不同,感興趣的可以自己測試一下。
(3)-d :自定義分隔符,默認爲製表符。
(4)-f :與-d一起使用,指定顯示哪個區域
這裏寫圖片描述

6、xargs

man手冊描述:
這裏寫圖片描述
**功能:**xargs命令是給其他命令傳遞參數的一個過濾器,也是組合多個命令的一個工具。它擅長將標準輸入數據轉換成命 令行參數,xargs能夠處理管道或者stdin並將其轉換成特定命令的命令參數。xargs也可以將單行或多行文本輸入 轉換爲其他格式,例如多行變單行,單行變多行。xargs的默認命令是echo,空格是默認定界符。這意味着通過管 道傳遞給xargs的輸入將會包含換行和空白,不過通過xargs的處理,換行和空白將被空格取代。xargs是構建單行命令的重要組件之一。
這裏寫圖片描述
常用選項:
(1)-n選項:指定列數,並多行輸出
這裏寫圖片描述
(2)-d選項: 自定義一個域分隔符,將特定列打散,並指定格式輸出
這裏寫圖片描述
(3)將格式化後的字符串作爲命令行參數傳遞給其他命令,組裝完成批量任務
這裏寫圖片描述
(4)選項-I,使用-I指定一個替換字符串{},這個字符串在xargs擴展時會被替換掉,當-I與xargs結合使用, 每一個參數命令都會被執行一次
這裏寫圖片描述
(5)find xargs rm 混合使用:
這裏寫圖片描述
一張圖總結xargs常見用法:
這裏寫圖片描述

7、sed

man手冊說明:
這裏寫圖片描述
**功能:**sed是一種流編輯器,它是文本處理中非常中的工具,能夠完美的配合正則表達式使用,功能不同凡響。處理時, 把當前處理的行存儲在臨時緩衝區中,稱爲“模式空間”(pattern space),接着用sed命令處理緩衝區中的內容, 處理完成後,把緩衝區的內容送往屏幕。接着處理下一行,這樣不斷重複,直到文件末尾。文件內容並沒有 改變, 除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反覆操作;編寫轉換程序等。
sed默認安照Basic規範基本匹配
常見使用方法:
(1)/pattern/p: 打印匹配pattern的行
這裏寫圖片描述
使用p命令需要注意,sed是把待處理文件的內容連同處理結果一起輸出到標準輸出的,因此p命令表示除了把文件內 容打印出來之外還額外打印一遍匹配pattern的行 要想只輸出處理結果,應加上-n選項,這種用法相當於grep命令。
(2)/pattern/d: 刪除匹配pattern的行
這裏寫圖片描述
sed命令不會修改原文件,刪除命令只表示某些行不打印輸出,而不是從原文件中刪去,如果要影響源文件,需要使用 -i 選項
這裏寫圖片描述
(3)/pattern/s/pattern1/pattern2/: 查找符合pattern的行,將該行第一個匹配pattern1的字符串替換爲 pattern2
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章