涩涩屋av_久久久久久美女精品啪啪_国产精品线在线精品_老熟妻内射精品一区_亚洲成人va_99久久精品久久久久久

中國專業(yè)IT外包服務(wù)

用心服務(wù)每一天
IT之道-艾銻知道

您當(dāng)前位置: 主頁 > 資訊動態(tài) > 艾銻分享 >

IT系統(tǒng)運維:Linux運維三劍客“grep,sed,awk”


2020-04-15 19:52 作者:admin 瀏覽量:
IT系統(tǒng)運維Linux運維三劍客“grep,sed,awk
 
Linux系統(tǒng)運維中,因為基本都是采用命令行的形式。有幾款強大的工具需要掌握,屬于系統(tǒng)運維工程師的運維利器,功能非常強大。
一. grep
grep(global search regular expression(RE) and print out the line,全面搜索正則表達式并把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹配的行打印出來。
選項
-d<進行動作> 當(dāng)指定要查找的是目錄而非文件時,必須使用這項參數(shù),否則grep命令將回報信息并停止動作。
-h 當(dāng)搜索多個文件時,不顯示匹配文件名前綴
-i 忽略字符大小寫的差別。
-l 列出文件內(nèi)容符合指定的范本樣式的文件名稱。
-n 列出所有的匹配的文本行,并顯示行號
-r  遞歸搜索,搜索當(dāng)前目錄和子目錄,此參數(shù)的效果和指定“-d recurse”參數(shù)相同。
-v 反轉(zhuǎn)查找。只顯示不匹配的文本行
 
1. -r遞歸查找
root@siguorui-OptiPlex-7010:/home/xhprof/trunk# grep -r XHProfRuns_Default *
examples/sample.php:$xhprof_runs = new XHProfRuns_Default();
xhprof_html/callgraph.php:$xhprof_runs_impl = new XHProfRuns_Default();
xhprof_html/typeahead.php:$xhprof_runs_impl = new XHProfRuns_Default();
 
2. -I的使用,顯示文件名稱
root@siguorui-OptiPlex-7010:~# grep -I root abc.txt 123.txt passwd
passwd:root:x:0:0:root:/root:/bin/bash
 
3. -n
root@siguorui-OptiPlex-7010:~# grep -n 'root' passwd
1:root:x:0:0:root:/root:/bin/bash
 
二.sed
sed是一種流編輯器,它是文本處理中非常重要的工具,能夠完美的配合正則表達式使用,功能不同凡響。處理時,把當(dāng)前處理的行存儲在臨時緩沖區(qū)中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區(qū)中的內(nèi)容,處理完成后,把緩沖區(qū)的內(nèi)容送往屏幕。接著處理下一行,這樣不斷重復(fù),直到文件末尾。文件內(nèi)容并沒有 改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反復(fù)操作;編寫轉(zhuǎn)換程序等。
 
命令格式
sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)
 
options常用選項
-e<script>或--expression=<script>:以選項中的指定的script來處理輸入的文本文件;
-n或--quiet或——silent:僅顯示script處理后的結(jié)果;
 
command常用
a\ 在當(dāng)前行下面插入文本。
i\ 在當(dāng)前行上面插入文本。
c\ 把選定的行改為新的文本。
d 刪除,刪除選擇的行。
n 讀取下一個輸入行,用下一個命令處理新的行而不是用第一個命令。
s 替換指定字符
p 打印模板塊的行。
q 退出Sed。
r file 從file中讀行。
w file 寫并追加模板塊到file末尾。  
 
1. p 打印相關(guān)的行
nl passwd|sed -n '10p' //打印第10行內(nèi)容
sed -n 'p' passwd
sed -n '/root/p' passwd //正則匹配打印
nl passwd|sed -n '10,20p' //打印第10行到20行
nl passwd|sed -n '/news/,/nobody/p' //用正則來指定一個行的范圍
nl passwd|sed -n '10,20!p'  //不選擇10到20行,!代表取反
nl passwd|sed -n '1~2p' //間隔行,會輸出1,3,5....行
注意,這里一定要加上-n選項,否則每條數(shù)據(jù)會顯示同樣的2行。并且無關(guān)的其他內(nèi)容也會顯示出來
 
2. a 在行后面增加內(nèi)容
root@siguorui-OptiPlex-7010:~# nl passwd|sed '2a **************'
     root:x:0:0:root:/root:/bin/bash
     daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
**************
     bin:x:2:2:bin:/bin:/usr/sbin/nologin
nl passwd|sed '1,2a **************' //在范圍內(nèi)的每一行后面都插入
 
3. i在行前面插入
root@siguorui-OptiPlex-7010:~# nl passwd|sed '1,2i **************'
**************
     root:x:0:0:root:/root:/bin/bash
**************
     daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
 
4. c把選定的行改為新的文本
root@siguorui-OptiPlex-7010:~# nl passwd|sed '1c abcd'
abcd
     daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
 //與a,i不同的時,如果這里是一個行的范圍則是把這個范圍內(nèi)容替換為當(dāng)前內(nèi)容   
root@siguorui-OptiPlex-7010:~# nl passwd|sed '1,3c abcd'
abcd
     ys:x:3:3:sys:/dev:/usr/sbin/nologin
5. d刪除行
root@siguorui-OptiPlex-7010:~# nl passwd | sed '/root/d'
     daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
     bin:x:2:2:bin:/bin:/usr/sbin/nologin
 
三、awk
AWK是一種處理文本文件的語言,是一個強大的文本分析工具。特點是處理靈活,功能強大??蓪崿F(xiàn)統(tǒng)計、制表以及其他功能。之所以叫AWK是因為其取了三位創(chuàng)始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的Family Name的首字符。
格式
· 命令行格式
awk [options] 'command' file(s)
· 腳本格式
awk -f awk-script-file file(s)
 
命令形式:
awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
· [-F|-f|-v] 大參數(shù),-F指定分隔符,-f調(diào)用腳本,-v定義變量 var=value
' ' 引用代碼塊
· BEGIN 初始化代碼塊,在對每一行進行處理之前,初始化代碼,主要是引用全局變量,設(shè)置FS分隔符
· // 匹配代碼塊,可以是字符串或正則表達式
· {} 命令代碼塊,包含一條或多條命令
· ; 多條命令使用分號分隔
· END 結(jié)尾代碼塊,在對每一行進行處理之后再執(zhí)行的代碼塊,主要是進行最終計算或輸出結(jié)尾摘要信息
 
常用內(nèi)置參數(shù)
· 1,$2... 表示整個當(dāng)前行
· $1 每行第一個字段
· NF 字段數(shù)量變量
· NR 每行的記錄號,多文件記錄遞增
· FILENAME 文件名
1. 常用內(nèi)置參數(shù),2....。通過分隔符指定,按順序依次為2...。默認分隔符為空格
awk -F ':' '{print "USERNAE:"$1"\t""UID:"$3}' passwd
2. NR,NF,F(xiàn)ILENAME
awk -F ':' '{print "Line:"NR,"Col:"NF,"USER:"$1}' passwd
3. 運用printf指定格式來打印
awk -F ':' '{printf("Line:%3s Col:%s User:%s\n",NR,NF,$1)}' passwd
root@siguorui-OptiPlex-7010:~# awk -F ':' '{printf("Line:%3s Col:%s User:%s\n",NR,NF,$1)}' passwd
Line:  1 Col:7 User:root
Line:  2 Col:7 User:daemon
Line:  3 Col:7 User:bin
Line:  4 Col:7 User:sys
...
4. 使用if
awk -F ':' '{if ($3>100) printf("Line:%3s Col:%s User:%s\n",NR,NF,$1)}' passwd
5. 正則和命令結(jié)合使用
awk -F ':' '/root/{print $1}' passwd
root@siguorui-OptiPlex-7010:~# awk -F ':' '/root/{print $1}' passwd
root
6. 使用BEGIN和END來制表
awk -F ':' 'BEGIN{print "line  col   user"}{print NR" |"NF" |"$1}END{print "----------------"FILENAME}' passwd
7. 使用BEGIN和END來統(tǒng)計一個目錄下文件總計大小
ls -l|awk 'BEGIN{size=0}{size+=$5}END{print " size is "size/1024/1024"M"}'
以上內(nèi)容由北京艾銻無限科技發(fā)展有限公司整理

相關(guān)文章

IT外包服務(wù)
二維碼 關(guān)閉
主站蜘蛛池模板: 国产精品视频久久久久 | 999久久久免费看 | 久久91久久久久麻豆精品 | 国产偷窥熟女精品视频 | 久久久蜜桃精品 | 欧美精品一区二区三区久久久 | a级免费网站 | www超碰在线| 网站一区二区三区 | 国产亚洲精品日韩综合网 | 黑人巨大精品欧美一区二区免费 | 日韩欧美国产手机在线观看 | 免费a级毛片在线看 | 欧美整片第一页 | 国产性猛交xx乱 | 久久久天堂国产精品女人 | 亚洲欧洲国产日韩 | 中文字幕无码热在线 | 50丰满少妇高潮惨叫正在播放 | 国产自主偷在线视频 | 成年人免费小视频 | 另类小说日韩欧美在线播放 | 亚洲AV无码国产精品麻豆天美 | 在线观看中文字幕日韩 | 色视频在线观看网站 | 日本一本二本在线 | 99久久久国产精品日本久久区一 | 综合激情亚洲 | 国产日本中文久久 | 人人干狠狠操 | 免费成人91| 久久精品视频免费 | 中日韩黄色录像 | 国产一区二区三区精品毛片 | 国产网友愉拍精品视频手机人 | 成人免费看 | 在线视频a| 少妇欲求不满 | 久久精品视频91 | 国产MD视频一区二区三区 | 国产精品久久久久久久福利院 |