shell的几种常用工具
最近在學(xué)習(xí)shell腳本語言,在學(xué)習(xí)的過程中了解了關(guān)于shell的幾種常用工具,就總結(jié)了一下。
1、sort
- 功能:顧名思義,sort是對文本進(jìn)行排序操作的。
- 原則:sort將文件的每一行作為一個(gè)單位,相互比較,比較原則是從首字符向后,依次按ASCII碼值進(jìn)行比較, 后將他們按升序輸出。
man手冊解釋:
常用選項(xiàng)介紹:
| -r | 將文本文件降序輸出 |
| -u | 在輸出行中去掉重復(fù)行 |
| -n | 以數(shù)值來進(jìn)行升序排序 |
| -t | 設(shè)定間隔符 |
| -k | 用來對指定列數(shù)進(jìn)行排序,通常與-t一起使用 |
| -f | 將小寫字母都轉(zhuǎn)換為大寫字母來進(jìn)行比較,亦即忽略大小寫 |
| -c | 會(huì)檢查文件是否已排好序,如果亂序,則輸出第一個(gè)亂序的行的相關(guān)信息,后返回1 |
| -C | 會(huì)檢查文件是否已排好序,如果亂序,不輸出內(nèi)容,僅返回1 |
| -b | 會(huì)忽略每一行前面的所有空白部分,從第一個(gè)可見字符開始比較 |
用法示例:
(1)使用sort對文件內(nèi)容進(jìn)行升序、降序排序:
(2)去掉重復(fù)行升序、降序:
(3)按指定列進(jìn)行排序
2、uniq
man手冊解釋:
主要用來去除文本中的重復(fù)行
用法示例:
常用語法
| -c | 顯示輸出中,在每行行首加上本行在文件中出現(xiàn)的次數(shù)。它可取代-u和-d選項(xiàng)。 |
| -d | 只顯示出現(xiàn)重復(fù)的行 |
| -u | 只顯示文件中不重復(fù)的各行 |
示例:
3、利用sort和uniq求兩個(gè)文件的交集、并集和補(bǔ)集
分別建立兩個(gè)文件:
求兩個(gè)文件的交集:
求兩個(gè)文件的并集:
求兩個(gè)文件的補(bǔ)集(file1-file2):
4、paste
man手冊說明:
**功能:**paste單詞意思是粘貼。該命令主要用來將多個(gè)文件的內(nèi)容合并。paste將按行將不同文件行信息放在一行。缺省情 況下, paste連接時(shí),用空格或tab鍵分隔新行中不同文本
將file1和file2內(nèi)容合并:
常用選項(xiàng):
(1) -d: 指定域分隔符
指定域分隔符為“:”,并合并兩個(gè)文件內(nèi)容
(2)-s: 將每個(gè)文件合并成行而不是按行粘貼
(3)- 對每一個(gè)(-),從標(biāo)準(zhǔn)輸入中讀一次數(shù)據(jù)。默認(rèn)使用空格 或者tab作域分隔符,該選項(xiàng)可以定制輸出格式
5、cut
man手冊說明:
**功能:**cut 命令從文件的每一行剪切字節(jié)、字符和字段并將這些字節(jié)、字符和字段寫至標(biāo)準(zhǔn)輸出。 如果不指定 File 參數(shù), cut 命令將讀取標(biāo)準(zhǔn)輸入。必須指定 -b、-c 或 -f 標(biāo)志之一。
常用選項(xiàng):
(1)-b :以字節(jié)為單位進(jìn)行分割。
(2)-c :以字符為單位進(jìn)行分割
對于字符處理,-c和-b似乎沒有什么區(qū)別,但當(dāng)你處理漢字的時(shí)候,就會(huì)有所不同,感興趣的可以自己測試一下。
(3)-d :自定義分隔符,默認(rèn)為制表符。
(4)-f :與-d一起使用,指定顯示哪個(gè)區(qū)域
6、xargs
man手冊描述:
**功能:**xargs命令是給其他命令傳遞參數(shù)的一個(gè)過濾器,也是組合多個(gè)命令的一個(gè)工具。它擅長將標(biāo)準(zhǔn)輸入數(shù)據(jù)轉(zhuǎn)換成命 令行參數(shù),xargs能夠處理管道或者stdin并將其轉(zhuǎn)換成特定命令的命令參數(shù)。xargs也可以將單行或多行文本輸入 轉(zhuǎn)換為其他格式,例如多行變單行,單行變多行。xargs的默認(rèn)命令是echo,空格是默認(rèn)定界符。這意味著通過管 道傳遞給xargs的輸入將會(huì)包含換行和空白,不過通過xargs的處理,換行和空白將被空格取代。xargs是構(gòu)建單行命令的重要組件之一。
常用選項(xiàng):
(1)-n選項(xiàng):指定列數(shù),并多行輸出
(2)-d選項(xiàng): 自定義一個(gè)域分隔符,將特定列打散,并指定格式輸出
(3)將格式化后的字符串作為命令行參數(shù)傳遞給其他命令,組裝完成批量任務(wù)
(4)選項(xiàng)-I,使用-I指定一個(gè)替換字符串{},這個(gè)字符串在xargs擴(kuò)展時(shí)會(huì)被替換掉,當(dāng)-I與xargs結(jié)合使用, 每一個(gè)參數(shù)命令都會(huì)被執(zhí)行一次
(5)find xargs rm 混合使用:
一張圖總結(jié)xargs常見用法:
7、sed
man手冊說明:
**功能:**sed是一種流編輯器,它是文本處理中非常中的工具,能夠完美的配合正則表達(dá)式使用,功能不同凡響。處理時(shí), 把當(dāng)前處理的行存儲(chǔ)在臨時(shí)緩沖區(qū)中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區(qū)中的內(nèi)容, 處理完成后,把緩沖區(qū)的內(nèi)容送往屏幕。接著處理下一行,這樣不斷重復(fù),直到文件末尾。文件內(nèi)容并沒有 改變, 除非你使用重定向存儲(chǔ)輸出。Sed主要用來自動(dòng)編輯一個(gè)或多個(gè)文件;簡化對文件的反復(fù)操作;編寫轉(zhuǎn)換程序等。
sed默認(rèn)安照Basic規(guī)范基本匹配
常見使用方法:
(1)/pattern/p: 打印匹配pattern的行
使用p命令需要注意,sed是把待處理文件的內(nèi)容連同處理結(jié)果一起輸出到標(biāo)準(zhǔn)輸出的,因此p命令表示除了把文件內(nèi) 容打印出來之外還額外打印一遍匹配pattern的行 要想只輸出處理結(jié)果,應(yīng)加上-n選項(xiàng),這種用法相當(dāng)于grep命令。
(2)/pattern/d: 刪除匹配pattern的行
sed命令不會(huì)修改原文件,刪除命令只表示某些行不打印輸出,而不是從原文件中刪去,如果要影響源文件,需要使用 -i 選項(xiàng)
(3)/pattern/s/pattern1/pattern2/: 查找符合pattern的行,將該行第一個(gè)匹配pattern1的字符串替換為 pattern2
總結(jié)
以上是生活随笔為你收集整理的shell的几种常用工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TechEd2010
- 下一篇: java 判断两个数是否异号