-
課程知識回顧(提問環(huán)節(jié))
- sed命令作用了解
語法: sed [參數(shù)] '條件 指令' 文件信息 - sed命令實際應(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命令測驗練習(xí)
- 利用sed命令取出IP地址
- 利用sed命令批量創(chuàng)建用戶
- 利用sed命令取出文件權(quán)限
- 利用sed命令批量修改文件擴展名
- 利用sed命令編寫腳本
修改服務(wù)器IP地址信息腳本 sh change_ip.sh
- sed命令作用了解
三劍客命令awk概述
gawk : pattern scanning and processing language
可以進行模式掃描 和 是一門語言
語法 : awk [參數(shù)] '模式{動作}' 文件
sed [參數(shù)] '條件 指令' 文件信息
原理 :三劍客命令awk作用
處理文件信息: 文本文件信息 日志文件信息 配置文件信息
處理文件方式: 排除信息 查詢信息 統(tǒng)計信息 替換信息
對文件列進行處理-
三劍客命令awk操作
創(chuàng)建測試環(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號碼
awk '{print3}' 文件信息
第一個步驟: 找出需要編寫模式信息
獲取xiaoyu信息
awk '/Xiaoyu/' reg.txt
awk '2~/Xiaoyu/{動作}' reg.txt
awk '1
2~/Xiaoyu/{print
3}' reg.txt
Zhang 390320151
[root@oldboyedu ~]# awk '1" "$3}' reg.txt
Zhang 390320151姓氏是Zhang的人,顯示他的第二次捐款金額及他的名字
第一個步驟: 找出需要編寫模式信息
awk '1~/Zhang/{print
2,
1~/Zhang/{print
1~/Zhang/{print
2,$5}' reg.txt
Zhang Dandan 100
Zhang Xiaoyu 90顯示所有以41開頭的ID號碼的人的全名和ID號碼
第一個步驟: 找出需要編寫模式信息
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號碼最后一位數(shù)字是1或5的人的全名
第一個步驟: 找出需要編寫模式信息
awk '|5
3~/[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獲取文件中有井號或空行的內(nèi)容, 將空行和井號信息的行排除
第一個步驟: 找出需要編寫模式信息
awk '/#|^0~/#|^
0 表示將文件所有列信息進行顯示
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的捐款,每個捐款數(shù)額都是以
110
330
awk '4}' reg.txt|sed 's#:#
2~/Xiaoyu/{print
'
awk -F "[: ]+" '"
"
"$6}' reg.txt
awk替換
gsub = gawk substitute
gsub(/要替換的信息/,"替換成什么".2~/Xiaoyu/{gsub(/:/,"
NF);print
155
201
說明: $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{動作}: 在處理文件之前,先做什么事情
[root@oldboyedu ~]# awk 'BEGIN{print "姓","名","號碼","捐款記錄"}{print $0}' reg.txt|column -t
姓 名 號碼 捐款記錄
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 "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 '{print4}' reg.txt
250
155
250
250
250
50
250
175
250
[root@oldboyedu ~]# awk -vFS="[: ]+" '{print4}' reg.txt
Zhang 250
Zhang 155
Meng 250
Wu 250
Liu 250
Wang 50
Zi 250
Li 175
Lao 250END{動作}: 在處理文件之后,再做什么事情
[root@oldboyedu ~]# awk 'BEGIN{print "姓","名","號碼","捐款記錄"}{print $0}END{print "學(xué)生捐款登記表"}' reg.txt|column -t
姓 名 號碼 捐款記錄
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é)生捐款登記表實際作用:
可以將統(tǒng)計后的最終結(jié)果進行輸出 -
awk對文件進行統(tǒng)計分析
- awk統(tǒng)計運算公式
a 文本信息累加運算
i=i+1
統(tǒng)計文件行數(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ù)值信息求和運算
sum=sum+n 你要對文件第幾列信息做求和運算
seq 10|awk '{sum=sum+$1}END{print sum}'
55
找出有faild信息, 總共出現(xiàn)了多少次 (awk統(tǒng)計)
難點: windows文件如何傳輸?shù)絣inux系統(tǒng)
yum install -y lrzsz --- 實現(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)計運算公式
-
課程知識梳理:
- awk命令概念介紹: 語法 原理 BEGIN 處理文件 END
- awk命令操作說明: 作用 查詢 排除 替換
參數(shù):
-F : 指定列分割符號
-v : 指定變量信息
動作:
print : 輸出指定信息
gsub : 替換指定信息
符號:
~ : 匹配信息 按照指定列進行匹配
!~ : 將匹配的信息取反
// : 指定匹配信息 - awk命令模式分類
BEGIN{}: 處理文件前, 執(zhí)行什么動作
END{}: 處理文件后, 執(zhí)行什么動作
內(nèi)置變量: FS NF NR --$0 - awk命令實現(xiàn)運算功能
累加公式: i=i+1 i++
求和運算: sum=sum+$n
第十九節(jié)課操作系統(tǒng)awk命令
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- grep sed awk 過濾相同內(nèi)容grep[root@yuyingqian ~]# grep 'oldb.y'...
- 1. 課程知識回顧(提問環(huán)節(jié)) 通配符號 * {}通配符號主要用于匹配文件名稱正則符號正則符號主要用于匹配文件內(nèi)...
- 轉(zhuǎn)載 原文的排版和內(nèi)容都更加友好,并且詳細,我只是在這里貼出了一部分留作自己以后參考和學(xué)習(xí),如希望更詳細了解AWK...