對于linux來講,文本處理是非常重要的,因為linux系統就是由無數的文件組成的,linux中一切皆文件。文件的處理方式有很多種,所以就有眾多的文本處理工具,各自作用于不同的文本處理方式。
一、查看文件命令:
cat命令:處理顯示文件內容,不改變原文件
cat命令常用于查看文件內容,也可通過不同的選項實現不同的顯示效果,只執行cat命令是會提供給用戶一個交互式的界面,輸入什么內容就顯示什么內容。
格式:cat [選項] …文件…
常用選項:
-n:在顯示的內容前加上行號
-A:顯示所有的控制符
-E:顯示行結束符$
-b:非空行編號
-s:壓縮連續的空行為一行
示例:
[root@host ~]# cat f1
abcd
aabbccdd
[root@host ~]# cat -n f1
1 abcd
2 aabbccdd
3
[root@host ~]# cat -A f1
abcd $
aabbccdd$
$
[root@host ~]# cat -E f1
abcd $
aabbccdd$
$
[root@host ~]# cat -b f1
1 abcd
2 aabbccdd
二、分頁查看文件命令:
more命令:分頁查看文件內容,在查看文件時,用時候會遇到文件特別大,一屏根本顯示不完,這時我們就用到了分頁查看工具,可以方便的把文件進行分頁,從而方便查看
格式: more [選項…] 文件..
常用選項:
-d:屏幕下方顯示提示信息
用法:使用回車鍵向下翻一行,使用空格鍵向下翻一屏
截圖:
less命令:一頁頁地查看文件內容標準輸出,提供了比more更為強大的功能
查看使用的命令有:
可以向上和向下查看,也可進行搜索,
PgUp:向上翻一屏
PgDn:向下翻一屏
回車鍵、下箭頭:向下翻一行
上箭頭:向上翻一行
搜索功能
也可插入 / 或 ?在其后輸入要查找的內容
/從光標向下搜索
?從光標處向上搜索
可結合n/N跳到下一個或上一個匹配的項
三、顯示文件前幾行、后幾行的內容的命令
head命令:顯示文件的前幾行內容(默認顯示前十行)
格式:head [選項].. 文件..
常用選項;
-c #:指定獲取前#個字節
-n #:指定獲取錢#行
-#:指定行數
示例:
[root@host ~]# head -c 100 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nol[root@host ~]# head -n 3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@host ~]# head -3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@host ~]#
tail命令:顯示文件后幾行的內容(默認為后十行)
格式: tail [選項]…文件…
常用選項:
-c #:指定后獲取#個字節
-n #:指定獲取后#行
-#:指定后#行
-f:跟蹤顯示文件新添內容的變化,多用于監控日志
用法與head命令相同
四、按列抽取文本命令與合并文本命令
cut命令:按列抽取文件內容
格式:cut [選項]…文件…
常用選項:
-d 分隔符:指明分隔符,默認為tab
-f 數字:
#:指定第#個字段
#,#[#]:離散的多個字段,例如1,3,5
#-#:連續的字段 例如1-4
混合使用:1-3,5
-c:按字符分割
–output-delimiter=STRING 指定輸出分割符
示例:
[root@host ~]# cut -d: -f1,3-5 /etc/passwd
root:0:0:root
bin:1:1:bin
daemon:2:2:daemon
adm:3:4:adm
[root@host ~]# cut -c1-10 /etc/passwd
root:x:0:0
bin:x:1:1:
daemon:x:2
adm:x:3:4:
[root@host ~]# cut -d: -f1,2 –output-delimiter=# /etc/passwd
root#x
bin#x
daemon#x
adm#x
paste命令:合并兩個文件同行號的列到一行
格式: paste [選項]…文[件]…
常用選項:
-d 分隔符:指定分隔符,默認為tab
-s:所用行合并成一行顯示
示例:
[root@host ~]# cat f1 f2
abcd
auuuuy
00000000000
abcd
auuuuy
00000000000
[root@host ~]# paste f1 f2
abcd abcd
auuuuy auuuuy
00000000000 00000000000
[root@host ~]# paste -s f1 f2
abcd auuuuy 00000000000
abcd auuuuy 00000000000
五、分析文本工具:
wc命令:收集文本統計數據,能夠統計出文件的單詞數、行數、字符數、字節數,作用對象可以是文本也可以是標準輸出,常與管道結合使用。
格式:wc [選項]
默認不加選項將輸出行數、單詞數、字符數
選項;
-l:統計行數
-c:統計字節數
-w:統計單詞數
-m:統計字符數(當統計漢字時與-c選項有區別)
示例:
[root@host ~]# cat /etc/passwd | wc
47 91 2448
[root@host ~]# cat /etc/passwd | wc -l
47
[root@host ~]# cat /etc/passwd | wc -c
2448
[root@host ~]# cat /etc/passwd | wc -w
91
sort命令:文本排序命令,把處理過的內容顯示出來,不會改變源文件內容
格式: sort [選項] 文件
常用選項:
-r:反向排序(由上至下)
-n:按數字大小排序
-f:忽略字符大小寫
-u:刪除輸出中重復的行
-t 分隔符:指定分割符
-k 數字段:按照-t指定的分隔符確定以哪一列進行排序
示例:
[root@host ~]# cat f1
123
23
45
4
[root@host ~]# sort f1
123
23
4
45
[root@host ~]# sort -n f1
4
23
45
123
[root@host ~]# sort -nr f1
123
45
23
4
[root@host ~]# sort -t: -k 3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
zhang:x:1000:1000:zhang:/home/zhang:/bin/bash
bash:x:1001:1001::/home/bash:/bin/bash
basher:x:1002:1002::/home/basher:/bin/bash
uniq命令:從輸入中刪除重復的行(連續的且完全相同的為重復)
格式: uniq [選項]…[文件]…
選項:
-c:顯示重復的行的次數
-d:僅顯示重復的行
-u:僅顯示不重復的行
示例:
[root@host ~]# cat f1
45
23
45
45
[root@host ~]# uniq -c f1
1 45
1 23
2 45
[root@host ~]# uniq -d f1
45
[root@host ~]# uniq -u f1
45
23
diff命令:diff命令用于比較文件的內容,特別是比較兩個版本不同的文件以找到改動的地方。diff在命令行中打印每一個行的改動。diff程序的輸出被稱為補丁 ,因為Linux系統中還有一個patch程序,可以根據diff的輸出將誤刪除的diff格式的其中一個文件恢復回來,不過用于恢復的文件會飛改名。
格式: diff [選項] 文件1 文件2…
選項:
-u:在恢復diff格式文件時選用
patch命令:復制在其他文件中進行的改變
選項:
-b:自動備份改變了的文件
示例:
[root@host ~]# cat f1 f2
auuuuy
00000000000
abcd
auuuuy
00000000000
[root@host ~]# diff f1 f2
0a1
> abcd
1a3
>
[root@host ~]# diff -u f1 f2 > f.log
[root@host ~]# rm -f f1
[root@host ~]# patch -b f2 f.log
patching file f2
Reversed (or previously applied) patch detected! Assume -R? [n] y
[root@host ~]# ls
anaconda-ks.cfg Documents f2 f.log Pictures Templates wc
Desktop Downloads f2.orig Music Public Videos
[root@host ~]# cat f2 f2.orig
auuuuy
00000000000
abcd
auuuuy
00000000000
原創文章,作者:ZJM,如若轉載,請注明出處:http://www.www58058.com/30079