Linux下常用文本處理命令有哪些

這篇文章主要介紹了Linux下常用文本處理命令有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比田東網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式田東網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋田東地區(qū)。費(fèi)用合理售后完善,十年實體公司更值得信賴。

一. sort

文件排序,通常用在管道中當(dāng)過濾器來使用。這個命令可以依據(jù)指定的關(guān)鍵字或指定的字符位置,對文件行進(jìn)行排序。使用-m選項,它將會合并預(yù)排序的輸入文件。想了解這個命令的全部參數(shù)請參考這個命令的info頁。

二. tsort

拓?fù)渑判?,讀取以空格分隔的有序?qū)Γ⑶乙揽枯斎肽J竭M(jìn)行排序。

三. uniq

這個過濾器將會刪除一個已排序文件中的重復(fù)行。這個命令經(jīng)常出現(xiàn)在sort命令的管道后邊。

四. expand, unexpand

expand命令將會把每個tab轉(zhuǎn)化為一個空格。這個命令經(jīng)常用在管道中。

unexpand命令將會把每個空格轉(zhuǎn)化為一個tab。效果與expand命令相反。

五. cut

一個從文件中提取特定域的工具。這個命令與awk中使用的print $N命令很相似,但是更受限。在腳本中使用cut命令會比使用awk命令來得容易一些。最重要的選項就是-d(字段定界符)和-f(域分隔符)選項。

六. paste

將多個文件, 以每個文件一列的形式合并到一個文件中,合并后文件中的每一列就是原來的一個文件。與cut結(jié)合使用,經(jīng)常用于創(chuàng)建系統(tǒng)log文件。

七. join

這個命令與paste命令屬于同類命令。但是它能夠完成某些特殊的目地。這個強(qiáng)力工具能夠以一種特殊的形式來合并兩個文件,這種特殊的形式本質(zhì)上就是一個關(guān)聯(lián)數(shù)據(jù)庫的簡單版本。

join命令只能夠操作兩個文件。它可以將那些具有特定標(biāo)記域(通常是一個數(shù)字標(biāo)簽)的行合并起來,并且將結(jié)果輸出到stdout。被加入的文件應(yīng)該事先根據(jù)標(biāo)記域進(jìn)行排序以便于能夠正確的匹配。

八. head

把文件的頭部內(nèi)容打印到stdout上(默認(rèn)為10行,可以自己修改)。這個命令有一些比較有趣的選項。

九. tail

將一個文件結(jié)尾部分的內(nèi)容輸出到stdout中(默認(rèn)為10行)。通常用來跟蹤一個系統(tǒng)logfile的修改情況,如果使用-f選項的話,這個命令將會繼續(xù)顯示添加到文件中的行。

十. wc

wc可以統(tǒng)計文件或I/O流中的"單詞數(shù)量"。

十一. fold

將輸入按照指定寬度進(jìn)行折行。這里有一個非常有用的選項-s,這個選項可以使用空格進(jìn)行斷行(譯者:事實上只有外文才需要使用空格斷行,中文是不需要的)(請參考例子 12-23和例子 A-1)。

十二. fmt

一個簡單的文件格式器。通常用在管道中,將一個比較長的文本行輸出進(jìn)行"折行"。

十三. col

這個命令用來濾除標(biāo)準(zhǔn)輸入的反向換行符號。這個工具還可以將空白用等價的tab來替換。col工具最主要的應(yīng)用還是從特定的文本處理工具中過濾輸出,比如groff和tbl。(譯注:主要用來將man頁轉(zhuǎn)化為文本。)

十四. column

列格式化工具。通過在合適的位置插入tab,這個過濾工具會將列類型的文本轉(zhuǎn)化為"易于打印"的表格式進(jìn)行輸出。

十五. colrm

列刪除過濾器。這個工具將會從文件中刪除指定的列(列中的字符串)并且寫到文件中,如果指定的列不存在,那么就回到stdout。colrm 2 4 <filename將會刪除filename文件中每行的第2到第4列之間的所有字符。

Caution:如果這個文件包含tab和不可打印字符,那將會引起不可預(yù)期的行為。在這種情況下,應(yīng)該通過管道的手段使用expand和unexpand來預(yù)處理colrm。

十六. nl

計算行號過濾器。nl filename將會把filename文件的所有內(nèi)容都輸出到stdout上,但是會在每個非空行的前面加上連續(xù)的行號。如果沒有filename參數(shù),那么就操作stdin。

nl命令的輸出與cat -n非常相似,然而,默認(rèn)情況下nl不會列出空行。

十七. pr

格式化打印過濾器。這個命令會將文件(或stdout)分頁,將它們分成合適的小塊以便于硬拷貝打印或者在屏幕上瀏覽。使用這個命令的不同的參數(shù)可以完成好多任務(wù),比如對行和列的操作,加入行,設(shè)置頁邊,計算行號,添加頁眉,合并文件等等。pr命令集合了許多命令的功能,比如nl, paste, fold, column, 和expand。

pr -o 5 --width=65 fileZZZ | more 這個命令對fileZZZ進(jìn)行了比較好的分頁,并且打印到屏幕上。文件的縮進(jìn)被設(shè)置為5,總寬度設(shè)置為65。

一個非常有用的選項-d,強(qiáng)制隔行打印(與sed -G效果相同)。

十八. gettext

GNU gettext包是專門用來將程序的輸出翻譯或者本地化為不同國家語言的工具集。在最開始的時候僅僅支持C語言,現(xiàn)在已經(jīng)支持了相當(dāng)數(shù)量的其它程序語言和腳本語言。

想要查看gettext程序如何在shell腳本中使用,請參考info頁。

十九. msgfmt

一個產(chǎn)生二進(jìn)制消息目錄的程序。這個命令主要用來本地化。

二十. iconv

一個可以將文件轉(zhuǎn)化為不同編碼格式(字符集)的工具。這個命令主要用來本地化。

二十一. recode

可以認(rèn)為這個命令是上邊iconv命令的專業(yè)版本。這個非常靈活的并可以把整個文件都轉(zhuǎn)換為不同編碼格式的工具并不是Linux標(biāo)準(zhǔn)安裝的一部分。

二十二. TeX, gs

TeX和Postscript都是文本標(biāo)記語言,用來對打印和格式化的視頻顯示進(jìn)行預(yù)拷貝。

TeX是Donald Knuth精心制作的排版系統(tǒng)。通常情況下,通過編寫腳本的手段來把所有的選項和參數(shù)封裝起來一起傳到標(biāo)記語言中是一件很方便的事情。

Ghostscript (gs) 是一個 遵循GPL的Postscript解釋器。

二十三. enscript

將純文本文件轉(zhuǎn)換為PostScript的工具,

比如, enscript filename.txt -p filename.ps 產(chǎn)生一個 PostScript 輸出文件filename.ps。

二十四. groff, tbl, eqn

另一種文本標(biāo)記和顯示格式化語言是groff。這是一個對傳統(tǒng)UNIX roff/troff顯示和排版包的GNU增強(qiáng)版本,Man頁使用的就是groff。

tbl表處理工具可以認(rèn)為是groff的一部分,它的功能就是將表標(biāo)記轉(zhuǎn)化到groff命令中。

eqn等式處理工具也是groff的一部分, 它的功能是將等式標(biāo)記轉(zhuǎn)化到groff命令中。

二十五. lex, yacc

lex是用于模式匹配的詞匯分析產(chǎn)生程序,在Linux系統(tǒng)上這個命令已經(jīng)被flex取代了。

yacc工具基于一系列的語法規(guī)范,產(chǎn)生一個語法分析器。在Linux系統(tǒng)上這個命令已經(jīng)被bison取代了。

二十六. tr

字符轉(zhuǎn)換過濾器。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Linux下常用文本處理命令有哪些”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

標(biāo)題名稱:Linux下常用文本處理命令有哪些
分享URL:http://muchs.cn/article24/pphpje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、品牌網(wǎng)站設(shè)計、微信小程序、網(wǎng)站內(nèi)鏈、用戶體驗網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名