溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Linux中常見(jiàn)的文本過(guò)濾命令有哪些

發(fā)布時(shí)間:2022-01-26 16:46:56 來(lái)源:億速云 閱讀:355 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要講解了“Linux中常見(jiàn)的文本過(guò)濾命令有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Linux中常見(jiàn)的文本過(guò)濾命令有哪些”吧!

Linux中常見(jiàn)的文本過(guò)濾命令有哪些

01 cat命令

通常用來(lái)顯示文本文件的內(nèi)容

一般用來(lái)查看比較短的文本文件,因?yàn)槠渚彌_區(qū)有限

-s選項(xiàng)可以用來(lái)合并文件中多余的空行,多個(gè)空行將被壓縮為一個(gè)空行;

-n選項(xiàng)可以顯示行號(hào)

-b選項(xiàng)可以跳過(guò)空行的編號(hào),顯示非空行的行號(hào);

cat不加任何參數(shù)可以用來(lái)賦值標(biāo)準(zhǔn)輸入到標(biāo)準(zhǔn)輸出;

02 more命令

可以用來(lái)分屏查看文本文件的內(nèi)容

當(dāng)文件的內(nèi)容查過(guò)一屏?xí)r可以分屏查看,最后一行會(huì)顯示more的提示顯示;

回車(chē)鍵會(huì)向后滾動(dòng)一行,空格滾動(dòng)一屏;

在more中還支持搜索功能,與vim中的搜索用法一致;

按q鍵自動(dòng)退出more

可以在某些命令后加管道符號(hào)和more命令,可以對(duì)命令的結(jié)果分屏顯示;

03 less命令

用于分屏顯示文本文件內(nèi)容

相對(duì)與more命令less功能更加強(qiáng)大

回車(chē)鍵會(huì)向后滾動(dòng)一行,空格滾動(dòng)一屏;

還可以用上下左右鍵查看,more不能回滾;

同樣支持搜索操作

more顯示完文件內(nèi)容后會(huì)自動(dòng)退出;less不會(huì),需要使用q鍵

在查看的過(guò)程中還可以調(diào)用其他shell指令,同vim的底行模式

04 grep命令

是一種長(zhǎng)匹配指令,可以匹配我們輸入的文本,并在文件中搜索含有匹配的行

# grep “root” /ets/passwd

匹配模式中支持正則表達(dá)式

# grep -n “fs$” /proc/filesystem   //搜索以fs結(jié)尾的行

05 head命令

用于顯示文件的頭部?jī)?nèi)容,默認(rèn)顯示文件前10行內(nèi)容

# head /etc/httpd/conf/httpd.conf

-n選項(xiàng)可以指定顯示的行數(shù)

對(duì)于顯示一些超大型文件的頭部?jī)?nèi)容很重要

可以顯示多個(gè)文件的頭部?jī)?nèi)容

06 tail命令

用來(lái)顯示給定文本文件的尾部?jī)?nèi)容,默認(rèn)顯示尾部10行內(nèi)容

# tail filename

-n選項(xiàng)可以指定顯示內(nèi)容的行數(shù)

-f可以動(dòng)態(tài)跟隨文件尾部的變化,經(jīng)常用該選項(xiàng)監(jiān)控系統(tǒng)的日志文件;

07 wc命令

用于統(tǒng)計(jì)文本文件中的行數(shù),單詞數(shù)和字節(jié)數(shù);

# wc /etc/passwd

    44 72 2102 /etc/passwd

# wc -l /etc/passwd   //單獨(dú)統(tǒng)計(jì)文件的行數(shù)

# ps -ef |grep gnome |wc -l   //統(tǒng)計(jì)當(dāng)前系統(tǒng)有多少個(gè)含有g(shù)nome進(jìn)程

# wc

然后輸入一部分內(nèi)容,按Ctrl+d時(shí)會(huì)統(tǒng)計(jì)我們剛輸入的文字信息

08 uniq命令

用于過(guò)濾文件中的重復(fù)行,并沒(méi)有改變文件內(nèi)容

要求要過(guò)濾的文本是已經(jīng)排序過(guò)的

首先使用sort命令排序,然后再使用uniq命令#sort file | uniq

-c選項(xiàng)可以統(tǒng)計(jì)重復(fù)行出現(xiàn)的次數(shù)

09 cut命令

用于顯示文本文件中指定的列

# cut -f 1 -d ” ” /etc/fstab   //以空格為分割,顯示第1部分

# cut -c -15 /proc/net/arp   //顯示每列前面的15個(gè)字符即IP地址

10 sort命令

用來(lái)對(duì)文本排序

# sort file

僅僅將file中的內(nèi)容排序輸出,并沒(méi)有改變file的內(nèi)容

-o選項(xiàng)可以輸出到指定的文件

# sort file -o result

也可以使用重定向的功能把排序結(jié)果保存到文件中

11 join命令

用于合并給定文件中的相同字段,要求文件是被排序過(guò)的

# cat math

Tom   90

Jim   91

# cat english

Jim   95

Tom   96

# sort math > math.sorted

# sort english > english.sorted

# join math.sorted english.sorted

Jim   91   95

Tom   90   96

12 split命令

用于將給定的文件分割成若干個(gè)小的文件

# split acess_log

會(huì)生成很多小文件,每個(gè)文件默認(rèn)是1000行

-l選項(xiàng)可以指定分割的文件大小的行數(shù)

13 unexpand命令

用于將文件中多余的空格字符轉(zhuǎn)換成制表符

# cat test.txt

liuli            zhangsan

# unexpand -t 10 test.txt

liuli   zhangsan

-t將指定個(gè)數(shù)的空白轉(zhuǎn)換成一個(gè)Tab鍵

14 tr命令

是字符處理工具,用于替換和刪除給定文本中的單個(gè)字符,不是字符串處理工具

# tr dev xyz

sed命令可以替換字符串

# tr a-z A-Z

# tr -d angi

zhslswwu

# echo $PATH

/opt/arm-2009q3/bin:/usr/lib/qt4/bin:/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/beangr/bin

# echo $PATH | tr “:” “\n”   //將結(jié)果中的:替換為換行符

/opt/arm-2009q3/bin

/usr/lib/qt4/bin:/usr/lib/qt-3.3/bin

/usr/local/bin

/usr/bin

/bin

/usr/local/sbin

/usr/sbin

/sbin

/home/beangr/bin

15 tee命令

用于從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù),將其保存到指定的文件并輸出到標(biāo)準(zhǔn)輸出

# cat /etc/fstab | tee file1 file2 file3

/* 正常輸出到標(biāo)準(zhǔn)輸出的同時(shí)保存到file1,file2,file3 */

16 tac命令

用于以行為單位,反序顯示文本的內(nèi)容

tac是cat的反指令

17 spell命令

是Linux中拼寫(xiě)檢查命令,可以對(duì)文件中的文本以單詞為單位進(jìn)行拼寫(xiě)檢查,并將拼寫(xiě)錯(cuò)誤的單詞打印出來(lái)

# spell file

18 paste命令

用于多個(gè)文本文件的合并,以列為單位

# cat t1.txt

name   math   java

Tom     100     70

jim     80     88

# cat t2.txt

C++

90

89

# paste t1.txt t2.txt

name   math   java   C++

Tom     100     70     90

jim     80     88     89

如果需要將結(jié)果保存到文件,需要使用重定向

19 diff命令

用于比較兩個(gè)文件不同的地方

# diff file1 file2

diff命令常用來(lái)生成補(bǔ)丁文件

# diff -Nur file1 file2 >a.patch

20 cmp命令

用于比較兩個(gè)文件的類(lèi)型,可以是任何類(lèi)型的文件

會(huì)顯示出從哪個(gè)地方開(kāi)始不同

# cmp file1 file2

# cmp /bin/ls /bin/mail

# cmp file1 file1   //比較兩個(gè)相同的文件,沒(méi)有輸出

21 look命令

用于顯示文件中以指定字符串開(kāi)頭的行,要求文本文件是有序的

# cat t1.txt

name   math   java

zhang   100     70

lisi   70     88

wang   100     70

zhang   100     70

# sort t1.txt > t1.txt.sorted

# look zhang t1.txt

zhang   100   70

# look zhang t1.txt.sorted

zhang   100   70

zhang   100   70

# look hello   //可以查詢(xún)我們的字典,會(huì)顯示所有包含hello的單詞

在安裝look命令的時(shí)候,會(huì)安裝兩個(gè)字典文件

22 ispell命令

可以檢查文件中英文拼寫(xiě)錯(cuò)誤,并給出糾正提示

# cat test.txt

yyear   month   hppy

# ispell test.txt //修改的結(jié)果會(huì)保存到文件

23 fold命令

用于控制文件內(nèi)容在顯示的時(shí)候占用屏幕的寬度

# fold -w 20 /etc/fstab   //指定寬度為20個(gè)字符

換行的內(nèi)容不表示文本是多行,只是多行顯示而已

24 fmt命令

用于對(duì)文本文件的內(nèi)容進(jìn)行文本格式的優(yōu)化

# fmt -u /etc/fstab   //會(huì)壓縮顯示的空格

25 expand命令

用于將文件中的制表符轉(zhuǎn)換為空格字符

# cat t1.txt

hello   world

hello     Linux

# expand -t 20 t1.txt

hello          world

hello                    Linux

與unexpand互逆

26 col命令

用來(lái)過(guò)濾其他指令輸出的控制信息

# cat mytest | col > mytest3

27 colm命令

用于刪除文件中指定的列(字符為單位)

# colm 20

原有內(nèi)容不會(huì)發(fā)生改變

# colm 20 50

28 comm命令

用于比較已經(jīng)排序的文件,比較以行為單位

# cat chengji1

wangwu   90

lisi   60

zhangsan   80

# cat chengji2

wangwu   90

zhangsan   80

lisi   70

# sort chengji1 > chengji1-1

# sort chengji2 > chengji2-2

# comm chengji1-1 chengji2-2

29 csplit命令

用于將一個(gè)大文件分割為小的文件,以行為單位

# csplit test.txt 300

/* 從300行處分割成兩個(gè)文件 */

30 diff3命令

用于比較3個(gè)文件的不同,并顯示他們的不同地方

# diff3 file1 file2 file3

31 diffstat命令

用于統(tǒng)計(jì)diff指令的輸出結(jié)果

# diff a.patch

32 printf命令

用于格式化并輸出結(jié)果到標(biāo)準(zhǔn)輸出,非常類(lèi)似于C語(yǔ)言中的printf函數(shù)

# printf “%s\t%s\n” “Hello” “world”

Hello world

33 pr命令

用于將文本文件轉(zhuǎn)換成適合打印的文件,可以將文件分成多頁(yè)并添加打印標(biāo)題

# pr test.txt > test.txt.print

34 od命令

用于輸出文件的八進(jìn)制,十六進(jìn)制或其他格式編碼的字節(jié),通常用來(lái)顯示不能直接在終端顯示的字符

# od -tcx1 test.txt

# cat test.txt

hello world

35 rev命令

用于對(duì)文件的文本內(nèi)容以行為單位進(jìn)行字符的反序輸出

# cat test.txt

hello world

I love linux!

# rev test.txt

dlrow olleh

!xunil evol I

感謝各位的閱讀,以上就是“Linux中常見(jiàn)的文本過(guò)濾命令有哪些”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Linux中常見(jiàn)的文本過(guò)濾命令有哪些這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI