您好,登錄后才能下訂單哦!
這篇文章主要講解了“Linux中常見的文本過濾命令有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Linux中常見的文本過濾命令有哪些”吧!
01 cat命令
通常用來顯示文本文件的內容
一般用來查看比較短的文本文件,因為其緩沖區有限
-s選項可以用來合并文件中多余的空行,多個空行將被壓縮為一個空行;
-n選項可以顯示行號
-b選項可以跳過空行的編號,顯示非空行的行號;
cat不加任何參數可以用來賦值標準輸入到標準輸出;
02 more命令
可以用來分屏查看文本文件的內容
當文件的內容查過一屏時可以分屏查看,最后一行會顯示more的提示顯示;
回車鍵會向后滾動一行,空格滾動一屏;
在more中還支持搜索功能,與vim中的搜索用法一致;
按q鍵自動退出more
可以在某些命令后加管道符號和more命令,可以對命令的結果分屏顯示;
03 less命令
用于分屏顯示文本文件內容
相對與more命令less功能更加強大
回車鍵會向后滾動一行,空格滾動一屏;
還可以用上下左右鍵查看,more不能回滾;
同樣支持搜索操作
more顯示完文件內容后會自動退出;less不會,需要使用q鍵
在查看的過程中還可以調用其他shell指令,同vim的底行模式
04 grep命令
是一種長匹配指令,可以匹配我們輸入的文本,并在文件中搜索含有匹配的行
# grep “root” /ets/passwd
匹配模式中支持正則表達式
# grep -n “fs$” /proc/filesystem //搜索以fs結尾的行
05 head命令
用于顯示文件的頭部內容,默認顯示文件前10行內容
# head /etc/httpd/conf/httpd.conf
-n選項可以指定顯示的行數
對于顯示一些超大型文件的頭部內容很重要
可以顯示多個文件的頭部內容
06 tail命令
用來顯示給定文本文件的尾部內容,默認顯示尾部10行內容
# tail filename
-n選項可以指定顯示內容的行數
-f可以動態跟隨文件尾部的變化,經常用該選項監控系統的日志文件;
07 wc命令
用于統計文本文件中的行數,單詞數和字節數;
# wc /etc/passwd
44 72 2102 /etc/passwd
# wc -l /etc/passwd //單獨統計文件的行數
# ps -ef |grep gnome |wc -l //統計當前系統有多少個含有gnome進程
# wc
然后輸入一部分內容,按Ctrl+d時會統計我們剛輸入的文字信息
08 uniq命令
用于過濾文件中的重復行,并沒有改變文件內容
要求要過濾的文本是已經排序過的
首先使用sort命令排序,然后再使用uniq命令#sort file | uniq
-c選項可以統計重復行出現的次數
09 cut命令
用于顯示文本文件中指定的列
# cut -f 1 -d ” ” /etc/fstab //以空格為分割,顯示第1部分
# cut -c -15 /proc/net/arp //顯示每列前面的15個字符即IP地址
10 sort命令
用來對文本排序
# sort file
僅僅將file中的內容排序輸出,并沒有改變file的內容
-o選項可以輸出到指定的文件
# sort file -o result
也可以使用重定向的功能把排序結果保存到文件中
11 join命令
用于合并給定文件中的相同字段,要求文件是被排序過的
# 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命令
用于將給定的文件分割成若干個小的文件
# split acess_log
會生成很多小文件,每個文件默認是1000行
-l選項可以指定分割的文件大小的行數
13 unexpand命令
用于將文件中多余的空格字符轉換成制表符
# cat test.txt
liuli zhangsan
# unexpand -t 10 test.txt
liuli zhangsan
-t將指定個數的空白轉換成一個Tab鍵
14 tr命令
是字符處理工具,用于替換和刪除給定文本中的單個字符,不是字符串處理工具
# 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” //將結果中的:替換為換行符
/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命令
用于從標準輸入讀取數據,將其保存到指定的文件并輸出到標準輸出
# cat /etc/fstab | tee file1 file2 file3
/* 正常輸出到標準輸出的同時保存到file1,file2,file3 */
16 tac命令
用于以行為單位,反序顯示文本的內容
tac是cat的反指令
17 spell命令
是Linux中拼寫檢查命令,可以對文件中的文本以單詞為單位進行拼寫檢查,并將拼寫錯誤的單詞打印出來
# spell file
18 paste命令
用于多個文本文件的合并,以列為單位
# 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
如果需要將結果保存到文件,需要使用重定向
19 diff命令
用于比較兩個文件不同的地方
# diff file1 file2
diff命令常用來生成補丁文件
# diff -Nur file1 file2 >a.patch
20 cmp命令
用于比較兩個文件的類型,可以是任何類型的文件
會顯示出從哪個地方開始不同
# cmp file1 file2
# cmp /bin/ls /bin/mail
# cmp file1 file1 //比較兩個相同的文件,沒有輸出
21 look命令
用于顯示文件中以指定字符串開頭的行,要求文本文件是有序的
# 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 //可以查詢我們的字典,會顯示所有包含hello的單詞
在安裝look命令的時候,會安裝兩個字典文件
22 ispell命令
可以檢查文件中英文拼寫錯誤,并給出糾正提示
# cat test.txt
yyear month hppy
# ispell test.txt //修改的結果會保存到文件
23 fold命令
用于控制文件內容在顯示的時候占用屏幕的寬度
# fold -w 20 /etc/fstab //指定寬度為20個字符
換行的內容不表示文本是多行,只是多行顯示而已
24 fmt命令
用于對文本文件的內容進行文本格式的優化
# fmt -u /etc/fstab //會壓縮顯示的空格
25 expand命令
用于將文件中的制表符轉換為空格字符
# cat t1.txt
hello world
hello Linux
# expand -t 20 t1.txt
hello world
hello Linux
與unexpand互逆
26 col命令
用來過濾其他指令輸出的控制信息
# cat mytest | col > mytest3
27 colm命令
用于刪除文件中指定的列(字符為單位)
# colm 20
原有內容不會發生改變
# colm 20 50
28 comm命令
用于比較已經排序的文件,比較以行為單位
# 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命令
用于將一個大文件分割為小的文件,以行為單位
# csplit test.txt 300
/* 從300行處分割成兩個文件 */
30 diff3命令
用于比較3個文件的不同,并顯示他們的不同地方
# diff3 file1 file2 file3
31 diffstat命令
用于統計diff指令的輸出結果
# diff a.patch
32 printf命令
用于格式化并輸出結果到標準輸出,非常類似于C語言中的printf函數
# printf “%s\t%s\n” “Hello” “world”
Hello world
33 pr命令
用于將文本文件轉換成適合打印的文件,可以將文件分成多頁并添加打印標題
# pr test.txt > test.txt.print
34 od命令
用于輸出文件的八進制,十六進制或其他格式編碼的字節,通常用來顯示不能直接在終端顯示的字符
# od -tcx1 test.txt
# cat test.txt
hello world
35 rev命令
用于對文件的文本內容以行為單位進行字符的反序輸出
# cat test.txt
hello world
I love linux!
# rev test.txt
dlrow olleh
!xunil evol I
感謝各位的閱讀,以上就是“Linux中常見的文本過濾命令有哪些”的內容了,經過本文的學習后,相信大家對Linux中常見的文本過濾命令有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。