本篇內(nèi)容主要講解“Linux正則表達式與文件格式化處理”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Linux正則表達式與文件格式化處理”吧!
成都創(chuàng)新互聯(lián)公司從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站建設(shè)、網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元亭湖做網(wǎng)站,已為上家服務(wù),為亭湖各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575
sed 本身也是一個管線命令,可以分析 standard input 的啦! 而且 sed 還可以將數(shù)據(jù)進行取代、刪除、新增、擷取特定行等等的功能呢。
范例一:將 /etc/passwd 的內(nèi)容列出并且打印行號,同時,請將第 2~5 行刪除!
[dmtsai@study ~]$ nl /etc/passwd | sed '2,5d' 1 root:x:0:0:root:/root:/bin/bash 6 sync:x:5:0:sync:/sbin:/bin/sync 7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
格式化打印: printf
范例一:將剛剛上頭數(shù)據(jù)的文件 (printf.txt) 內(nèi)容僅列出姓名與成績:(用 [tab] 分隔) [dmtsai@study ~]$ printf '%s\t %s\t %s\t %s\t %s\t \n' $(cat printf.txt) Name Chinese English Math Average DmTsai 80 60 92 77.33 VBird 75 55 80 70.00 Ken 60 90 70 73.33
awk 也是一個非常棒的數(shù)據(jù)處理工具!相較于 sed 常常作用于一整個行的處理, awk 則比較 傾向于一行當(dāng)中分成數(shù)個“字段”來處理。因此,awk 相當(dāng)?shù)倪m合處理小型的數(shù)據(jù)數(shù)據(jù)處理呢! awk 通常運行的模式是這樣的:
[dmtsai@study ~]$ awk '條件類型1{動作1} 條件類型2{動作2} ...' filename
若我想要取出帳號與登陸者的 IP ,且?guī)ぬ柵c IP 之間以 [tab] 隔開,則會變成這樣:
[dmtsai@study ~]$ last -n 5 | awk '{print $1 "\t" $3}' dmtsai 192.168.1.100 dmtsai 192.168.1.100 dmtsai 192.168.1.100 dmtsai 192.168.1.100 dmtsai Fri
范例一:比對 passwd.old 與 passwd.new 的差異: [dmtsai@study testpw]$ diff passwd.old passwd.new 4d3 <==左邊第四行被刪除 (d) 掉了,基準(zhǔn)是右邊的第三行 < adm:x:3:4:adm:/var/adm:/sbin/nologin <==這邊列出左邊(<)文件被刪除的那一行內(nèi)容 6c5 <==左邊文件的第六行被取代 (c) 成右邊文件的第五行 sync:x:5:0:sync:/sbin:/bin/sync <==左邊()文件第六行內(nèi)容 > no six line <==右邊(>)文件第五行內(nèi)容
#很聰明吧!用 diff 就把我們剛剛的處理給比對完畢了!
patch patch 這個指令與 diff 可是有密不可分的關(guān)系?。∥覀兦懊嫣岬?,diff 可以用來分辨兩個版本 之間的差異, 舉例來說,剛剛我們所創(chuàng)建的 passwd.old 及 passwd.new 之間就是兩個不同版 本的文件。 那么,如果要“升級”呢?就是“將舊的文件升級成為新的文件”時,應(yīng)該要怎么做 呢? 其實也不難啦!就是“先比較先舊版本的差異,并將差異檔制作成為補丁文件,再由補丁 文件更新舊文件”即可。
到此,相信大家對“Linux正則表達式與文件格式化處理”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!