文本處理

Linux最最最最重要的哲學思想就是:一切皆文件诸狭。文件以及文件的操作在LInux操作系統(tǒng)中是非常的重要。熟練使用精悍小巧快捷的文本處理方式讓效率更高君纫。

一驯遇、文件查看命令

less 分頁查看

[root@centos7 app]# cat /etc/passwd |less

cat

空行指的是沒有任何字符,如果一行中只有空格那也不能稱為空行蓄髓。

  • 對每一行進行編號,不論一行有沒有內(nèi)容都顯示行號叉庐。
[root@centos7 app]# cat -n /etc/passwd
  • 對非空行進行編號
    如果一行當中只有空格,那么這一行也不是非空行会喝。使用-b時也進行編號
[root@centos7 app]# cat -b file
  • 壓縮空行
    壓縮連續(xù)的空行為一行陡叠,一行中只有空格那也不是空行
[root@centos7 app]# cat -s file
  • 在每一行結(jié)束地添加$
[root@centos7 app]# cat -E $ /etc/passwd

二、分頁查看內(nèi)容

  • 分頁查看more
    能顯示文件剩余的百分比
[root@centos7 app]# more passwd 
[root@centos7 app]# cat passwd | more 
  • 分頁查看less
[root@centos7 app]# cat /etc/profile.d/colorls.sh  | less

less可以使用搜索使用 /string搜索字符串好乐。
n或者N跳轉(zhuǎn)到下一個或者上一個匹配匾竿。


三、截取文本的前行或者后行

  • head
    截取指定前幾行或者前幾字節(jié)的內(nèi)容
[root@centos7 app]# cat colorls.sh | head -c 10            #顯示指定前10字節(jié)
[root@centos7 app]# cat colorls.sh | head -n 10            #顯示指定前10行
[root@centos7 app]# cat colorls.sh | head -10
  • tail
    tail與head正好相反蔚万,作用是截取文本的后幾行或后幾字節(jié)岭妖。
    tail與head常常搭配使用截取除指定的行
[root@centos7 app]# cat clorls.sh | tail -c 10             #顯示指定后10字節(jié)
[root@centos7 app]# cat clorls.sh | tail -n 10             #顯示指定后10行
[root@centos7 app]# cat clorls.sh | tail -10               #顯示指定后10行
  • head與tail搭配使用,精確找出第三行
[root@centos7 app]# cat file|head -3|tail -1

四、截取文本的某一列

  • cut
    cut可以指定分隔符后昵慌,截取出指定的列假夺。如果一行沒有分隔符的話,整行輸出斋攀。
 #指定冒號為分隔符已卷,只顯示第2列
[root@centos7 app]# cat file |cut -d: -f2       
 #指定冒號為分隔符,顯示2到3列        
[root@centos7 app]# cat file |cut -d: -c2-3             
#
#如果分隔符有歧義淳蔼,那么需要加引號
[root@centos7 app]# cat file |cut -d";" -f2 
  • paste
    將兩個文本同行號的內(nèi)容侧蘸,輸出到一行
#默認使用tab做分隔符
[root@centos7 app]# paste file file2
1       a
1       a
1       a
#指定冒號作文分隔符
[root@centos7 app]# paste -d: file file2
#將所有內(nèi)容輸出到一行
[root@centos7 app]# paste -s file file2
1       1       1
a       a       a

五、文本統(tǒng)計工具與排序

  • wc可以用來統(tǒng)計行數(shù)鹉梨,字數(shù)讳癌,字符數(shù)
[root@centos7 app]# wc passwd 
  42     88    2308    passwd
 行數(shù)  文字數(shù)   字符數(shù)   文件名
#
#統(tǒng)計行數(shù)
[root@centos7 app]# wc passwd -l
42 passwd
#統(tǒng)計字符數(shù)
[root@centos7 app]# wc passwd -w
88 passwd
#統(tǒng)計字節(jié)數(shù)
[root@centos7 app]# wc passwd -c
2308 passwd
  • sort工具用來對文本進行排序
#刪除重復的行
[root@centos7 app]# sort -u file2
#按字數(shù)的大小進行排序
[root@centos7 app]# sort -n file2
#    -r 執(zhí)行反方向(由上至下)整理
#    -n 執(zhí)行按數(shù)字大小整理
#    -f 選項忽略(fold)字符串中的字符大小寫
#    -u 選項(獨特,unique)刪除輸出中的重復行
#    -t c 選項使用c做為字段界定符
#    -k X 選項按照使用c字符分隔的X列來整理能夠使用多次
  • uniq 刪除連續(xù)重復的行為一行
壓縮連續(xù)重復的行為一行
[root@centos7 app]# uniq file2
#統(tǒng)計每行重復出現(xiàn)的次數(shù)
[root@centos7 app]# uniq file2 -c
#顯示不曾連續(xù)重復的行
[root@centos7 app]# uniq file2 -u

練習題

1存皂、找出ifconfig “網(wǎng)卡名” 命令結(jié)果中本機的IPv4地址

[root@centos7 app]# ifconfig ens33 |head -2|tail -1|tr -s ' '|cut -d ' ' -f3
192.168.0.129

解析:

ifconfig ens3--------顯示網(wǎng)卡信息
head -2|tail -1------保留IP信息的一行
tr -s ' ' -----------將空格壓縮
cut -d ' ' -f3-------空格為分隔符顯示出第三列


***

 2晌坤、查出分區(qū)空間使用率的最大百分比值

[root@centos7 app]# df -h| tr -s ' '|cut -d ' ' -f5
Use%
7%
0%
1%

*解析*:
>```
 tr -s ' '--------------壓縮空格
cut -d ' ' -f5---------以空格為分隔符,截取第五列

3旦袋、查出用戶UID最大值的用戶名骤菠、UID及shell類型

[root@centos7 app]# cut -d: -f1,3,7 /etc/passwd|sort -t : -k 2 -n|tail -1
nfsnobody:65534:/sbin/nologin

解析:

cut -d: -f1,3 /etc/passwd-----以:為分隔符,取1,3列
sort -t : -k 2 -n-------------以:作為分隔符疤孕,按第二列從小到大排序
tail -1-----------------------排序后最后一行是最大的商乎,所以取最后一行


***

4、查出/tmp的權(quán)限胰柑,以數(shù)字方式顯示

用命令本身的快捷方法

[root@centos7 app]# stat -c %a /tmp/
1777

用本章的知識解決

[root@centos7 app]# stat /tmp/ | head -n4|tail -1|tr '(' '/'|cut -d/ -f2
1777

*解析*:
>```
stat /tmp/ -----------------此命令可以查看到目錄數(shù)字形式的權(quán)限
head -n4--------------------數(shù)字權(quán)限在第四行截亦,所以取出前四行
tail -1---------------------取出只有數(shù)字權(quán)限的一行
|tr '(' '/'-----------------設置分隔符
cut -d/ -f2-----------------取出權(quán)限

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末爬泥,一起剝皮案震驚了整個濱河市柬讨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌袍啡,老刑警劉巖踩官,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異境输,居然都是意外死亡蔗牡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門嗅剖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辩越,“玉大人,你說我怎么就攤上這事信粮∏埽” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長督惰。 經(jīng)常有香客問我不傅,道長,這世上最難降的妖魔是什么赏胚? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任访娶,我火速辦了婚禮,結(jié)果婚禮上觉阅,老公的妹妹穿的比我還像新娘崖疤。我一直安慰自己,他們只是感情好典勇,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布戳晌。 她就那樣靜靜地躺著,像睡著了一般痴柔。 火紅的嫁衣襯著肌膚如雪沦偎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天咳蔚,我揣著相機與錄音豪嚎,去河邊找鬼。 笑死谈火,一個胖子當著我的面吹牛侈询,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播糯耍,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼扔字,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了温技?” 一聲冷哼從身側(cè)響起革为,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎舵鳞,沒想到半個月后震檩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡蜓堕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年抛虏,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片套才。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡迂猴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出背伴,到底是詐尸還是另有隱情沸毁,我是刑警寧澤儡率,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站以清,受9級特大地震影響儿普,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜掷倔,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一眉孩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧勒葱,春花似錦浪汪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至凯旋,卻和暖如春呀潭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背至非。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工钠署, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人荒椭。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓谐鼎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親趣惠。 傳聞我的和親對象是個殘疾皇子狸棍,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容