文本工具
操作系統中,文本的處理這一操作,比如操作一些內容,查看一些內容等等這些東西在linux中都得借助工具來完成對文本的操作。下面來說說對文本處理的工具;
其中:
查看文件內容工具:more、less、cat
文件文本截?。篽ead和tail
按列抽?。篶ut
按關鍵字抽?。篻rep
下面一一介紹一下
查看文件內容工具:
cat :查看文件內容并打印到屏幕上(默認動作)
當然我們可以使用管道或者輸出重定向將默認輸出機制更改
選項及含義:
-A:查看文件內容中的隱藏字符,如linux中的換行符" $ " [root@localhost testdir]# cat -A cat.txt aaaaaaaa$ bbbbbbbb$ //$為linux中的換行符 -n:顯示文件內容時輸出到屏幕加行號 [root@localhost testdir]# cat -n cat.txt 1 aaaaaaaa 2 bbbbbbbb //為內容添加行號 -s:連續的空行壓縮成一行 [root@localhost testdir]# cat cat.txt aaaaaaaa bbbbbbbb //文件中空行很多 [root@localhost testdir]# cat -s cat.txt aaaaaaaa bbbbbbbb //添加s選項連續的空行則被壓縮成一行
cat還有個雙胞胎兄弟,那兄弟有點叛逆,cat為正常順序顯示,而他的兄弟則是倒序顯示其文件中的內容,那兄弟則是` tac` 命令.可以去嘗試一下
more、less分頁顯示文件內容
查看文件時如果內容過于多而使用cat查看的話會屏幕會一掃而過,more和less則是用來避免這種情況的。但對于more和less則不能對顯示出來的文件內容進行更改等操作。
more操作方法
space(空格鍵):往下翻頁
enter(回車鍵):一行一行往下翻
less:分頁查看文件
space(空格鍵):往下翻頁
enter(回車鍵):一行一行往下翻
/:往下搜索字符串
在查看是直接鍵入此符號,在輸出需要查找的字符,使用n/N進行上下查找
?:往上搜索字符串
在查看是直接鍵入此符號,在輸出需要查找的字符,使用n/N進行上下查找
n:使用/或?查找字符串是向上或向下依次查看
N:使用/或?查找字符串是向上或向下依次查看
more和less的區別:
more只能往下查看,不能回到首行重新查看,內容查看到底部是自動退出
less則能上下翻動和查找字符串 ,退出需按‘ q ’鍵
文件文本截?。?/p>
能對文件中的文本信息指定顯示行
head:查看文件內容(截取首行往下的行數),默認不指定行數顯示后10行
-n<數字>:指定顯示內容的前幾行; head -n num(要顯示前幾行) 文件(也可以不要-n選項,直接head -num 文件,即可) [root@localhost testdir]# head -n 2 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin [root@localhost testdir]# head -2 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin //兩種用法是一個效果 -c<字符數>:指定顯示首行的第幾個字符; [root@localhost testdir]# head -c 10 /etc/passwd root:x:0:0[root@localhost testdir]# //截取文件中首行的10個字符,這里因為我們截取的前面的內容,而沒有換行符產生的效果。
tail:查看文件內容(截取文件倒數的第幾行),默認不指定行數顯示后10行
用法則和head差不多,只不過是前或后的區別
其中tail -f 選項可以顯示文件不退出,等待用戶輸入內容顯示,
tail -n0 -f tail.txt &
//顯示tail.txt文件倒數第0行,使用-f選項退出,等待其他用戶輸入內容到其內,并自動打印添加的內容到屏幕,“ & ”,此為后臺執行命令,具體什么原理我也不太懂。
按列截取文件內容
cut:截取文件內容中指定的列的內容
cut [option]… [file]…
-d: 以給定在-d選項后面的字符為分割符從而截取文件內容
直接在-d后輸入要用于分割的字符
-f:顯示給定在-f選項后的內容
三種使用方式
1.#:直接指定單個字段(如:3則表示為第三段)
2.#-#:指定連續的字段(如:1-3則表示為1到3的字段)
3.#,#: 指定離散的字段(如:1,3,5,則表示分別的1和3和5個字段)
例:
[root@localhost testdir]# cut -d: -f1,3,5 /etc/passwd root:0:root //-d后跟分割符,用于后面指定要截取第幾段的參照物 bin:1:bin daemon:2:daemon //顯示passwd文件中的以:號為分割的第1段,第3段,第5段 -c:顯示給定的數字范圍內的字符 [root@localhost testdir]# cut -c 1-10 /etc/passwd root:x:0:0 // 截取passwd文件中第1個字符到第10個字符的內容 bin:x:1:1: --output-delimiter=STRING 將切出來的內容中的分割符更改為指定的分割符 [root@localhost testdir]# cut -d: -f1,3 --output-delimiter=* /etc/passwd root*0 bin*1 //切掉第1和第3字段,其默認的分割符為冒號“*”使用此命令將原默認分割符更改為指定的分割符“ * ”
分析文本工具:
對文件進行分析查看其數據屬性變化
文本數據統計: wc
整理文本: sort
比較文件: diff和patch
文本統計工具
wc:word count 單詞統計
不加選項統計文件的默認參數信息(行數、單詞數、字節、文件名)
wc [option]… [file]…
-l: 統計文本中的行數 [root@localhost testdir]# wc -l less.txt 107 less.txt -w:統計文本中的單詞數 [root@localhost testdir]# wc -w less.txt 80 less.txt -c:統計文件字節數 [root@localhost testdir]# wc -c less.txt 255 less.txt -L:統計文件中內容最多的一行包含多少個字符 [root@localhost testdir]# wc -L less.txt 4 less.txt
在命令行中直接輸入wc命令,則會在命令中進入編輯默認,在內輸入內容之后按 ^d 退出,wc會自動計算其行數、單詞數、字節
文本排序工具
sort:文本排序
對文件內容進行排序,而后打印到屏幕
sort [option]… [file]…
-t:指定分割符進行排序,配合其他選項使用
-k:指定用于排序的字段
-n:基于數值大小進行排序而非字符順序
-r:逆序排序
-f: 忽略字符大小寫
-u:連續重復的內容只顯示一個
例:1.使用passwd文件的以冒號“ :”分割的第三個字段進行數值排序
[root@localhost testdir]# sort -t: -k 3 -n /etc/passwd root:x:0:0:root:/root:/bin/bash //-t :指定分隔符為冒號“ :” ;-k:指定以第三個字段進行排序;-n:進行數值從小到大排序 bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin ............
2.使用passwd文件的以冒號“ :”分割的第三個字段進行數值大小的倒序顯示
[root@localhost testdir]# sort -t: -k 3 -nr /etc/passwd //-r 則為倒序顯示 nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin wang:x:508:508::/home/wang:/bin/bash nologin:x:507:507::/home/nologin:/sbin/nologin testbash:x:506:506::/home/testbash:/sbin/nologin ............
Uniq:唯一,其含義為刪除重復
-c:顯示文件中重復行的次數
[root@localhost testdir]# uniq -c cat.txt 2 aaaaaaaa 2 bbbbbbbb 1 cccccccc 2 1 dddddddd 2 2 eeeeeeec
-u:僅顯示不重復的行
[root@localhost testdir]# uniq -u cat.txt cccccccc dddddddd
-d:僅顯示重復的行
[root@localhost testdir]# uniq -d cat.txt aaaaaaaa bbbbbbbb //此處兩個空行為隔開的連個重復的空行 eeeeeeec
文件比較
diff:比較兩個文件之間的區別
diff命令在最簡單的情況下,比較給定的兩個文件的不同;diff命令是以逐行的方式,比較文本文件的異同處。
diff [OPTION]… FILES
-u:顯示兩個文件詳細的不同信息
使用diff不加選項直接對比文件將不同之處打印到屏幕
例:1.比較兩個文件的不同之處,不加選項
[root@localhost testdir]# diff less.txt less2.txt 2d1 < bbbb //此為兩個文件中不同之處的內容
2.比較兩個文件顯示出詳細不同信息
[root@localhost testdir]# diff -u less.txt less2.txt --- less.txt2016-07-26 01:58:11.914942576 +0800 +++ less2.txt2016-07-26 01:57:55.244946816 +0800 @@ -1,2 +1 @@ aaaa -bbbb //此為兩個文件不同的詳細信息,將第二個文件刪此行則相同
patch:向文件打補丁
在比較出來的不同點保存到另一個文件中,如果誤刪用于比較的其中一個文件,可以用命令恢復誤刪的文件,用其中一個文件將另一個文件恢復
-b:將打完補丁的文件自動備份,名稱默認為原文件的后面加上.orig
兩個文件,比較出不同之處之后將信息保存了,然后原用于比較的文件被誤刪,現用patch命令將其恢復 1.diff -u file1 file2 >file.patch //將文件1和文件2比較出來的詳細信息保存到file.patch中 2.rm -f file2 //刪除文件2 3.patch -b file1 file.patch //用文件1和比較出來的結果文件進行融合匹配,系統自動保存為file1.orig,此文件內容將和原有內容一樣。
原創文章,作者:Lii,如若轉載,請注明出處:http://www.www58058.com/29263