文本處理工具
文件內容:less和 cat,more
文件截?。篽ead和tail
文本內容處理:tr
按列抽取:cut
按關鍵字抽?。篻rep
文件查看命令:cat, tac,rev
cat 復制標準輸入到當前輸出
語法:cat [OPTION]… [FILE]…
選項:
-E: 顯示行結束符$
-n: 對顯示出的每一行進行編號
-A:顯示所有控制符
-b:非空行編號
-s:壓縮連續的空行成一行
cat ,tac,rev 區別
cat是正常讀取文件,tac是把文件行號反過來讀,行里面的內容保持原樣而rev就行號順序不變,內容包括單詞全部反過來
[root@localhost ~]# cat /etc/issue \S Kernel \r on an \m [root@localhost ~]# tac /etc/issue Kernel \r on an \m \S [root@localhost ~]# rev /etc/issue S\ m\ na no r\ lenreK
分頁查看文件內容 more less
more: 分頁查看文件
語法:more [OPTIONS…] FILE…
-d: 顯示翻頁及退出提示
less:一頁一頁地查看文件或STDIN輸出
查看時有用的命令包括:
/文本 搜索 文本
?文本 搜索 文本 向上搜索
n/N 跳到下一個 或 上一個匹配
less 命令是man命令使用的分頁器
顯示文本前或后行內容
head
語法:head [OPTION]… [FILE]…
-c #: 指定獲取前#字節
-n #: 指定獲取前#行
-#: 指定行數
tail
語法:tail [OPTION]… [FILE]…
-c #: 指定獲取后#字節
-n #: 指定獲取后#行
-#:
-f: 跟蹤顯示文件新追加的內容,常用日志監控
-一般用法[root@localhost ~]# tail -n 0 -f /var/log/messages & [1] 10275 --------------自動追加最后一行日志信息
tr 單個文字轉換處理(translate character)
功能說明:轉換字符。
語 法:tr [-cdst][第一字符集][第二字符集]
補充說明:tr指令從標準輸入設備讀取數據,經過字符串轉譯后,輸出到標準輸出設備。(對位轉換)
參 數:
-c 取代所有不屬于第一字符集的字符。
-d 刪除所有屬于第一字符集的字符。
-s 把連續重復的字符以單獨一個字符表示。
-t 對位替換。
例如、將文件中每個單詞(字母)顯示在獨立的一行,并無空行
[root@localhost ~]# cat file1 adsfasf a fsf fsa afsa asfsa afasfa qfwf aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa sss sss sss t: f [root@localhost ~]# cat /etc/init.d/functions |tr -cs '[:alpha:]' '\n' adsfasf a fsf fsa afsa asfsa afasfa qfwf aaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaa sss sss sss t f
-t選項是對位替換
[root@localhost ~]# echo asdfg |tr -t 'ad' 'X' Xsdfg [root@localhost ~]# echo asdfgh |tr -t 'asd' 'ASWDF' ASWfgh
注意:
tr替換的話如果第一字符和第二字符數目不相等時,以第二字符為準
[root@localhost ~]# echo asdfg |tr 'asd' 'AS' ASSfg [root@localhost ~]# echo asdfg |tr 'asd' 'ASDF' ASDfg
cut
功能:cut命令用來顯示行中的指定部分,刪除文件中指定字段。
語法:cut(選項)(參數) 文件
選項 :
-c:僅顯示行中指定范圍的字符;
-d:指定字段的分隔符,默認的字段分隔符為“TAB”;
-f:顯示指定字段的內容;一般 -f 1,2,3
-n:與“-b”選項連用,不分割多字節字符;
例如:
切出/etc/passwd下的用戶名和對應的shell
[root@localhost ~]# cat /etc/passwd | cut -d ':' -f 1,7 root:/bin/bash bin:/sbin/nologin daemon:/sbin/nologin adm:/sbin/nologin
切出/etc/passwd下指定范圍的字段
[root@localhost ~]# cat /etc/passwd | cut -c 5-25 :x:0:0:root:/root:/bi x:1:1:bin:/bin:/sbin/
paste 橫向合并兩個文件同行號的列到一行
語法:paste [OPTION]… [FILE]…
-d 分隔符:指定分隔符,默認用TAB
-s : 所有行合成一行顯示
paste f1 f2
paste -s f1 f2
分析文本的工具
wc 收集文本統計數據
功能: 計數單詞總數、行總數、字節總數和字符總數
用處: 可以對文件或STDIN中的數據運行
$ wc story.txt 39 237 1901 story.txt 行數 字數 字符數
使用 -l 來只計數行數
使用 -w 來只計數單詞總數
使用 -c 來只計數字節總數
使用 -m 來只計數字符總數
sort 文本排序
用處: 把整理過的文本顯示在STDOUT,不改變原始文件
語法:$ sort [options] file(s)
常用選項:
-r 執行反方向(由上至下)整理
-n 執行按數字大小整理
-f 選項忽略(fold)字符串中的字符大小寫
-u 選項(獨特,unique)刪除輸出中的重復行
–t c 選項使用c做為字段界定符
–k X 選項按照使用c字符分隔的X列來整理能夠使用多次
uniq 從輸入中刪除重復的前后相接的行
語法: uniq [OPTION]… [FILE]…
-c: 顯示每行重復出現的次數
-d: 僅顯示重復過的行
-u: 僅顯示不曾重復的行
注意:連續且完全相同方為重復
常和sort 命令一起配合使用:
sort userlist.txt | uniq -c———統計個單詞出現的次數統計/etc/passwd里面各種shell相同的用戶有多少
[root@localhost ~]# cat /etc/passwd|cut -d: -f 7 |sort | uniq -c 16 /bin/bash 10 /bin/csh 1 /bin/sync 1 /etc/tcsh 1 /sbin/halt 38 /sbin/nologin 1 /sbin/shutdown
diff 比較文件
語法:diff [選項] [文件一] [文件二]
$ diff foo.conf-broken foo.conf-works
5c5
< use_widgets = no
—use_widgets = yes
5c5的意思是: 注明第5行有區別
patch 復制對文件改變(打補?。?/span>
前提:
-
diff 命令的輸出被保存在一種叫做“補丁”的文件中
-
使用 -u 選項來輸出“統一的(unified)”diff格式文件,最適用于補丁文件。
-
patch 命令復制在其它文件中進行的改變(要謹慎使用?。?br />** 適用 -b 選項來自動備份改變了的文件
$ diff -u foo.conf-broken foo.conf-works > foo.patch
$ patch -b foo.conf-broken foo.patch**
對文件一還原成文件二的方法:
[root@qzx ~]# diff /tmp/issue1 /tmp/issue2 3a4 > hello --------文件二于文件一 hello [root@qzx ~]# diff -u /tmp/issue1 /tmp/issue2 > diff.txt ----把文件一和文件二中的不同點找出并打包 [root@qzx ~]# patch -b /tmp/issue1 diff.txt patching file /tmp/issue1 ----------讓文件一還原成文件二 [root@qzx ~]# cat /tmp/issue1 CentOS release 6.8 (Final) Kernel \r on an \m hello
原創文章,作者:qzx,如若轉載,請注明出處:http://www.www58058.com/29886