溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux正則表達式與文件格式化處理

發(fā)布時間:2021-08-11 10:41:04 來源:億速云 閱讀:101 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“Linux正則表達式與文件格式化處理”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Linux正則表達式與文件格式化處理”吧!

正則表達式與文件格式化處理

基礎正則表達式字符匯整 (characters)

Linux正則表達式與文件格式化處理

sed 工具

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ù)處理工具

awk 也是一個非常棒的數(shù)據(jù)處理工具!相較于 sed 常常作用于一整個行的處理, awk 則比較 傾向于一行當中分成數(shù)個“字段”來處理。因此,awk 相當?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
文件比對工具
diff
范例一:比對 passwd.old 與 passwd.new 的差異:
[dmtsai@study testpw]$ diff passwd.old passwd.new
4d3 <==左邊第四行被刪除 (d) 掉了,基準是右邊的第三行
< 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 可是有密不可分的關系??!我們前面提到,diff 可以用來分辨兩個版本 之間的差異, 舉例來說,剛剛我們所創(chuàng)建的 passwd.old 及 passwd.new 之間就是兩個不同版 本的文件。 那么,如果要“升級”呢?就是“將舊的文件升級成為新的文件”時,應該要怎么做 呢? 其實也不難啦!就是“先比較先舊版本的差異,并將差異檔制作成為補丁文件,再由補丁 文件更新舊文件”即可。

到此,相信大家對“Linux正則表達式與文件格式化處理”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI