-
課程知識(shí)回顧(提問環(huán)節(jié))
- sed命令作用了解
語(yǔ)法: sed [參數(shù)] '條件 指令' 文件信息 - sed命令實(shí)際應(yīng)用
查詢數(shù)據(jù)信息 sed -n '/查詢信息/p' 文件信息
添加數(shù)據(jù)信息 sed -i.bak '條件信息 i/a 添加的內(nèi)容' 文件信息
刪除數(shù)據(jù)信息 sed -ri.bak '/條件01|條件02/d' 文件信息
替換數(shù)據(jù)信息 sed -i.bak 's#要替換的信息#替換成什么信息#g' 文件信息
sed -ri.bak 's#要替換的信息(保留信息)#替換成什么信息\1#g' 文件信息
sed -i.bak 's#正則匹配信息#&#g' 文件信息
sed -i.bak '3c oldboy' 文件信息 - sed命令測(cè)驗(yàn)練習(xí)
- 利用sed命令取出IP地址
- 利用sed命令批量創(chuàng)建用戶
- 利用sed命令取出文件權(quán)限
- 利用sed命令批量修改文件擴(kuò)展名
- 利用sed命令編寫腳本
修改服務(wù)器IP地址信息腳本 sh change_ip.sh
- sed命令作用了解
三劍客命令awk概述
gawk : pattern scanning and processing language
可以進(jìn)行模式掃描 和 是一門語(yǔ)言
語(yǔ)法 : awk [參數(shù)] '模式{動(dòng)作}' 文件
sed [參數(shù)] '條件 指令' 文件信息
原理 :三劍客命令awk作用
處理文件信息: 文本文件信息 日志文件信息 配置文件信息
處理文件方式: 排除信息 查詢信息 統(tǒng)計(jì)信息 替換信息
對(duì)文件列進(jìn)行處理-
三劍客命令awk操作
創(chuàng)建測(cè)試環(huán)境
[root@oldboyedu ~]# cat reg.txt
Zhang Dandan 41117397 :250:100:175
Zhang Xiaoyu 390320151 :155:90:201
Meng Feixue 80042789 :250:60:50
Wu Waiwai 70271111 :250:80:75
Liu Bingbing 41117483 :250:100:175
Wang Xiaoai 3515064655 :50 :95 :135
Zi Gege 1986787350 :250:168:200
Li Youjiu 918391635 :175:75:300
Lao Nanhai 918391635 :250:100:175顯示xiaoyu的姓氏和ID號(hào)碼
awk '{print 3}' 文件信息
第一個(gè)步驟: 找出需要編寫模式信息
獲取xiaoyu信息
awk '/Xiaoyu/' reg.txt
awk '2~/Xiaoyu/{動(dòng)作}' reg.txt
awk '1 2~/Xiaoyu/{print 3}' reg.txt
Zhang 390320151
[root@oldboyedu ~]# awk '1" "$3}' reg.txt
Zhang 390320151姓氏是Zhang的人,顯示他的第二次捐款金額及他的名字
第一個(gè)步驟: 找出需要編寫模式信息
awk '1~/Zhang/{print 2,1~/Zhang/{print 1~/Zhang/{print 2,$5}' reg.txt
Zhang Dandan 100
Zhang Xiaoyu 90顯示所有以41開頭的ID號(hào)碼的人的全名和ID號(hào)碼
第一個(gè)步驟: 找出需要編寫模式信息
awk '3~/^41/{print 2,3~/^41/{print 2,3~/^41/{print 2,$3}' reg.txt|column -t
Zhang Dandan 41117397
Liu Bingbing 41117483顯示所有ID號(hào)碼最后一位數(shù)字是1或5的人的全名
第一個(gè)步驟: 找出需要編寫模式信息
awk '|53~/[15]3~/(1|5)3~/[15]1,3~/[15]1,3}' reg.txt|column -t
Zhang Xiaoyu 390320151
Wu Waiwai 70271111
Wang Xiaoai 3515064655
Li Youjiu 918391635
Lao Nanhai 918391635獲取文件中有井號(hào)或空行的內(nèi)容, 將空行和井號(hào)信息的行排除
第一個(gè)步驟: 找出需要編寫模式信息
awk '/#|^0~/#|^0 表示將文件所有列信息進(jìn)行顯示
awk '/' reg.txt
awk '!/#|^0!~/#|^0!~/#|^0}' reg.txt
Zhang Dandan 41117397 :250:100:175
Meng Feixue 80042789 :250:60:50
Wu Waiwai 70271111 :250:80:75
Liu Bingbing 41117483 :250:100:175
Zi Gege 1986787350 :250:168:200
Li Youjiu 918391635 :175:75:300
Lao Nanhai 918391635 :250:100:175
Lao Nanhai Xiaoyu :250:100:175-
顯示Xiaoyu的捐款,每個(gè)捐款數(shù)額都是以110330
awk '4}' reg.txt|sed 's#:#2~/Xiaoyu/{print '
awk -F "[: ]+" '"""$6}' reg.txtawk替換
gsub = gawk substitute
gsub(/要替換的信息/,"替換成什么".2~/Xiaoyu/{gsub(/:/,"NF);print 155201
說明: $NF 表示文件的最后一列信息
-
awk命令模式分類
普通模式: 比較行信息
[root@oldboyedu ~]# cat reg.txt
Zhang Dandan 41117397 :250:100:175
Zhang Xiaoyu 390320151 :155:90:201
Meng Feixue 80042789 :250:60:50
Wu Waiwai 70271111 :250:80:75
Liu Bingbing 41117483 :250:100:175
Wang Xiaoai 3515064655 :50:95:135
Zi Gege 1986787350 :250:168:200
Li Youjiu 918391635 :175:75:300
Lao Nanhai 918391635 :250:100:175
[root@oldboyedu ~]# awk 'NR>2' reg.txt
Meng Feixue 80042789 :250:60:50
Wu Waiwai 70271111 :250:80:75
Liu Bingbing 41117483 :250:100:175
Wang Xiaoai 3515064655 :50:95:135
Zi Gege 1986787350 :250:168:200
Li Youjiu 918391635 :175:75:300
Lao Nanhai 918391635 :250:100:175
[root@oldboyedu ~]# awk 'NR<2' reg.txt
Zhang Dandan 41117397 :250:100:175
說明: NR 表示文件行信息取出多行信息
[root@oldboyedu ~]# awk 'NR==2,NR==4' reg.txt --- 連續(xù)多行
Zhang Xiaoyu 390320151 :155:90:201
Meng Feixue 80042789 :250:60:50
Wu Waiwai 70271111 :250:80:75
[root@oldboyedu ~]# awk 'NR==2;NR==4' reg.txt --- 不連續(xù)多行
Zhang Xiaoyu 390320151 :155:90:201
Wu Waiwai 70271111 :250:80:75特殊模式:
BEGIN{動(dòng)作}: 在處理文件之前,先做什么事情
[root@oldboyedu ~]# awk 'BEGIN{print "姓","名","號(hào)碼","捐款記錄"}{print $0}' reg.txt|column -t
姓 名 號(hào)碼 捐款記錄
Zhang Dandan 41117397 :250:100:175
Zhang Xiaoyu 390320151 :155:90:201
Meng Feixue 80042789 :250:60:50
Wu Waiwai 70271111 :250:80:75
Liu Bingbing 41117483 :250:100:175
Wang Xiaoai 3515064655 :50:95:135
Zi Gege 1986787350 :250:168:200
Li Youjiu 918391635 :175:75:300
Lao Nanhai 918391635 :250:100:175用于計(jì)算:
[root@oldboyedu ~]# awk "BEGIN{print 2+2}"
4
[root@oldboyedu ~]# awk "BEGIN{print 2-2}"
0
[root@oldboyedu ~]# awk "BEGIN{print 22}"
4
[root@oldboyedu ~]# awk "BEGIN{print 3/2}"
1.5
[root@oldboyedu ~]# awk "BEGIN{print 3^2}"
9
[root@oldboyedu ~]# awk "BEGIN{print 3^3}"
27
[root@oldboyedu ~]# awk "BEGIN{print 3*3}"
27
[root@oldboyedu ~]# awk "BEGIN{print 5%3}"
2修改內(nèi)置變量:
NF: 取出最后一列
# awk '{print 4}' reg.txt
250
155
250
250
250
50
250
175
250
[root@oldboyedu ~]# awk -vFS="[: ]+" '{print 4}' reg.txt
Zhang 250
Zhang 155
Meng 250
Wu 250
Liu 250
Wang 50
Zi 250
Li 175
Lao 250END{動(dòng)作}: 在處理文件之后,再做什么事情
[root@oldboyedu ~]# awk 'BEGIN{print "姓","名","號(hào)碼","捐款記錄"}{print $0}END{print "學(xué)生捐款登記表"}' reg.txt|column -t
姓 名 號(hào)碼 捐款記錄
Zhang Dandan 41117397 :250:100:175
Zhang Xiaoyu 390320151 :155:90:201
Meng Feixue 80042789 :250:60:50
Wu Waiwai 70271111 :250:80:75
Liu Bingbing 41117483 :250:100:175
Wang Xiaoai 3515064655 :50:95:135
Zi Gege 1986787350 :250:168:200
Li Youjiu 918391635 :175:75:300
Lao Nanhai 918391635 :250:100:175
學(xué)生捐款登記表實(shí)際作用:
可以將統(tǒng)計(jì)后的最終結(jié)果進(jìn)行輸出 -
awk對(duì)文件進(jìn)行統(tǒng)計(jì)分析
- awk統(tǒng)計(jì)運(yùn)算公式
a 文本信息累加運(yùn)算
i=i+1
統(tǒng)計(jì)文件行數(shù)
awk '{i=i+1}END{print i}' test.txt
[root@oldboyedu ~]# awk '/oldboy/{i=i+1}END{print i}' test.txt
4
[root@oldboyedu ~]# awk '/oldboy/{i++}END{print i}' test.txt
4
b 數(shù)值信息求和運(yùn)算
sum=sum+n 你要對(duì)文件第幾列信息做求和運(yùn)算seq 10|awk '{sum=sum+$1}END{print sum}'
55
找出有faild信息, 總共出現(xiàn)了多少次 (awk統(tǒng)計(jì))
難點(diǎn): windows文件如何傳輸?shù)絣inux系統(tǒng)
yum install -y lrzsz --- 實(shí)現(xiàn)windows和linux系統(tǒng)之間數(shù)據(jù)傳輸
rz -- 將windows數(shù)據(jù) ---> linux系統(tǒng)
sz -- 將linux數(shù)據(jù) ---> windows系統(tǒng)awk '/Failed/{i++}END{print i}' secure-20161219
awk '$6~/Failed/{i++}END{print i}' secure-20161219' - awk統(tǒng)計(jì)運(yùn)算公式
-
課程知識(shí)梳理:
- awk命令概念介紹: 語(yǔ)法 原理 BEGIN 處理文件 END
- awk命令操作說明: 作用 查詢 排除 替換
參數(shù):
-F : 指定列分割符號(hào)
-v : 指定變量信息
動(dòng)作:
print : 輸出指定信息
gsub : 替換指定信息
符號(hào):
~ : 匹配信息 按照指定列進(jìn)行匹配
!~ : 將匹配的信息取反
// : 指定匹配信息 - awk命令模式分類
BEGIN{}: 處理文件前, 執(zhí)行什么動(dòng)作
END{}: 處理文件后, 執(zhí)行什么動(dòng)作
內(nèi)置變量: FS NF NR --$0 - awk命令實(shí)現(xiàn)運(yùn)算功能
累加公式: i=i+1 i++
求和運(yùn)算: sum=sum+$n
第十九節(jié)課操作系統(tǒng)awk命令
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門濒旦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來株旷,“玉大人,你說我怎么就攤上這事尔邓×榔剩” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵梯嗽,是天一觀的道長(zhǎng)齿尽。 經(jīng)常有香客問我,道長(zhǎng)灯节,這世上最難降的妖魔是什么循头? 我笑而不...
- 正文 為了忘掉前任绵估,我火速辦了婚禮,結(jié)果婚禮上贷岸,老公的妹妹穿的比我還像新娘壹士。我一直安慰自己,他們只是感情好偿警,可當(dāng)我...
- 文/花漫 我一把揭開白布躏救。 她就那樣靜靜地躺著,像睡著了一般螟蒸。 火紅的嫁衣襯著肌膚如雪盒使。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼蔓纠,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了吗蚌?” 一聲冷哼從身側(cè)響起腿倚,我...
- 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蚯妇,沒想到半個(gè)月后敷燎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡箩言,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年硬贯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陨收。...
- 正文 年R本政府宣布菲饼,位于F島的核電站肾砂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏宏悦。R本人自食惡果不足惜镐确,卻給世界環(huán)境...
- 文/蒙蒙 一包吝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧源葫,春花似錦诗越、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至荣堰,卻和暖如春床未,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背振坚。 一陣腳步聲響...
- 正文 我出身青樓啃洋,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親屎鳍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子裂允,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- grep sed awk 過濾相同內(nèi)容grep[root@yuyingqian ~]# grep 'oldb.y'...
- 1. 課程知識(shí)回顧(提問環(huán)節(jié)) 通配符號(hào) * {}通配符號(hào)主要用于匹配文件名稱正則符號(hào)正則符號(hào)主要用于匹配文件內(nèi)...
- 轉(zhuǎn)載 原文的排版和內(nèi)容都更加友好,并且詳細(xì),我只是在這里貼出了一部分留作自己以后參考和學(xué)習(xí),如希望更詳細(xì)了解AWK...
- 一、三劍客實(shí)例講解 環(huán)境 [root@oldboyedu ~]# cat oldgirl.txt I am old...