Linux必會的三劍客命令

grep、sed竟宋、awk

一、grep的用法

1形纺、grep簡介

  • grep是一種強(qiáng)大的文本搜索工具丘侠,它能使用正則表達(dá)式搜索文本,并把匹配的行打印出來逐样。
  • grep包含grep和egrep蜗字,其中egrep為擴(kuò)展正則打肝,支持更多的元字符,功能更強(qiáng)大挪捕。使用-E也可以實(shí)現(xiàn)grep的擴(kuò)展功能粗梭。

2、grep命令參數(shù)

-a或--text 不要忽略二進(jìn)制的數(shù)據(jù)级零。
-A<顯示列數(shù)>或--after-context=<顯示列數(shù)> 除了顯示符合范本樣式的那一列之外断医,并顯示該列之后的內(nèi)容。
-b或--byte-offset 在顯示符合范本樣式的那一列之前妄讯,標(biāo)示出該列第一個字符的位編號孩锡。
-B<顯示列數(shù)>或--before-context=<顯示列數(shù)> 除了顯示符合范本樣式的那一列之外,并顯示該列之前的內(nèi)容亥贸。
-c或--count 計算符合范本樣式的列數(shù)躬窜。
-C<顯示列數(shù)>或--context=<顯示列數(shù)>或-<顯示列數(shù)> 除了顯示符合范本樣式的那一列之外,并顯示該列之前后的內(nèi)容炕置。
-d<進(jìn)行動作>或--directories=<進(jìn)行動作> 當(dāng)指定要查找的是目錄而非文件時荣挨,必須使用這項參數(shù),否則grep指令將回報信息并停止動作朴摊。
-e<范本樣式>或--regexp=<范本樣式> 指定字符串做為查找文件內(nèi)容的范本樣式默垄。
-E或--extended-regexp 將范本樣式為延伸的普通表示法來使用。
-f<范本文件>或--file=<范本文件> 指定范本文件甚纲,其內(nèi)容含有一個或多個范本樣式口锭,讓grep查找符合范本條件的文件內(nèi)容,格式為每列一個范本樣式介杆。
-F或--fixed-regexp 將范本樣式視為固定字符串的列表鹃操。
-G或--basic-regexp 將范本樣式視為普通的表示法來使用。
-h或--no-filename 在顯示符合范本樣式的那一列之前春哨,不標(biāo)示該列所屬的文件名稱荆隘。
-H或--with-filename 在顯示符合范本樣式的那一列之前,表示該列所屬的文件名稱赴背。
-i或--ignore-case 忽略字符大小寫的差別椰拒。
-l或--file-with-matches 列出文件內(nèi)容符合指定的范本樣式的文件名稱。
-L或--files-without-match 列出文件內(nèi)容不符合指定的范本樣式的文件名稱凰荚。
-n或--line-number 在顯示符合范本樣式的那一列之前燃观,標(biāo)示出該列的列數(shù)編號。
-q或--quiet或--silent 不顯示任何信息便瑟。
-r或--recursive 此參數(shù)的效果和指定“-d recurse”參數(shù)相同缆毁。
-s或--no-messages 不顯示錯誤信息。
-v或--revert-match 反轉(zhuǎn)查找胳徽。
-V或--version 顯示版本信息积锅。
-w或--word-regexp 只顯示全字符合的列。
-x或--line-regexp 只顯示全列符合的列养盗。
-y 此參數(shù)的效果和指定“-i”參數(shù)相同缚陷。
--help 在線幫助。

3往核、grep實(shí)例

(1)過濾以m開頭的行

[root@jzyue ~]# grep ^m test.txt

(2)過濾以k結(jié)尾的行

[root@jzyue ~]# grep k$ a.txt

(3)排除空行并打印行號

[root@jzyue ~]# grep -vn "^$" a.txt

(4)匹配任意一個字符箫爷,不包括空行

[root@jzyue ~]# grep "." a.txt

(5)匹配所有

[root@jzyue ~]# grep ".*" a.txt

(6)精確匹配

[root@jzyue ~]# grep "file" a.txt

(7)匹配有xyz的行

[root@jzyue ~]# grep "[xyz]" a.txt

(8)重復(fù)a三次

[root@jzyue ~]# grep "a{3}" a.txt

(9)匹配a至少出現(xiàn)3次最多出現(xiàn)5次

[root@jzyue ~]# grep -E "a{3,5}" a.txt

(10)至少出現(xiàn)1次或一次以上的

[root@jzyue ~]# egrep "a{1,}" a.txt

二、sed的用法

1聂儒、sed簡介

  • Stream Editor文本流編輯虎锚,sed是一個“非交互式的”面向字符流的編輯器。能同時處理多個文件多行的內(nèi)容衩婚,可以不對原文件改動窜护,把整個文件輸入到屏幕,可以把只匹配到模式的內(nèi)容輸入到屏幕上。還可以對原文件改動非春,但是不會再屏幕上返回結(jié)果柱徙。
  • Sed 要用來自動編輯一個或多個文件;簡化對文件的反復(fù)操作奇昙;編寫轉(zhuǎn)換程序等护侮。

2、sed命令參數(shù)

-e 允許多項編輯
-n 只打印模式匹配的行
-i 直接修改對應(yīng)文件
-r 支持?jǐn)U展元字符

3储耐、sed實(shí)例

(1)刪除1-2行信息

[root@jzyue ~]# sed '1,2d' a.txt

(2)打印出/etc/passwd下第二行信息

[root@jzyue ~]# sed -n '2p' /etc/passwd

(3)打印出/etc/passwd下最后一行信息

[root@jzyue ~]# sed -n '$p' /etc/passwd

(4)修改網(wǎng)卡IP地址(111改為70)

[root@jzyue ~]# sed 's#111#70#g' /etc/sysconfig/network-scripts/ifcfg-eth0

(5)使用sed命令關(guān)閉selinux

[root@jzyue ~]# sed '7c SELINUX=Disable' /etc/selinux/config

(6)將a.txt第20行下添加ideapad

[root@jzyue ~]# sed -i '20a ideapad;' a.txt

(7)刪除第21行信息

[root@jzyue ~]# sed '21d' a.txt

(8)刪除所有行的信息

[root@jzyue ~]# sed '1,$d' a.txt

(9)為第二行到第六行添加注釋信息

[root@jzyue ~]# sed -r '2,6s/.*/#&/' passwd.txt

三羊初、awk的用法

1、awk簡介

awk是一個優(yōu)良的文本處理工具什湘,linux及unix環(huán)境現(xiàn)有的功能最強(qiáng)大的數(shù)據(jù)處理引擎之一长赞。awk進(jìn)行逐行掃描文件,從第一行到最后一行禽炬,尋找匹配的行進(jìn)行操作涧卵。

2、awk命令參數(shù)

-F:定義分隔符

3腹尖、awk實(shí)例

(1)匹配包含nologin的行

[root@jzyue ~]# awk '/nologin/' passwd.txt

(2)指定冒號為分隔符柳恐,顯示第一列

[root@jzyue ~]# awk -F: '{print $1}' passwd.txt

(3)NR記錄輸入總的行號

[root@jzyue ~]# awk '{print NR,$0}' passwd.txt

(4)以root開頭的行

[root@jzyue ~]# awk '/^root/' passwd.txt

(5)UID為0的列出來

[root@jzyue ~]# awk -F ":" '$3==0' /etc/passwd

(6)UID小于10的列出來

[root@jzyue ~]# awk -F: '$3 < 10' /etc/passwd

(7)常見的表達(dá)式

關(guān)系運(yùn)算符
運(yùn)算符 含義 示例
< 小于 x<y
<= 小于或等于 x<=y
== 等于 x==y
!= 不等于 x!=y
= 大于等于 x>=y
大于 x>y

(8)邏輯操作符

&&邏輯與 || 邏輯或 !邏輯非
匹配用戶名為root并且打印uid小于15的行
[root@jzyue ~]# awk -F: '1~/root/ &&3<=15' /etc/passwd
匹配用戶名為root或uid大于5000
[root@jzyue ~]# awk -F: '1~/root/ ||3>=5000' /etc/passwd

(9)條件判斷

if語句格式:{ if(表達(dá)式){語句;語句;... }}
打印當(dāng)前管理員用戶名稱
[root@jzyue ~]# awk -F: '{ if(3==0){print1 "is adminisitrator"} }' /etc/passwd
統(tǒng)計系統(tǒng)用戶數(shù)量
[root@jzyue ~]# awk -F: '{ if(3>0 &&3<1000){i++}} END {print i}' /etc/passwd
統(tǒng)計普通用戶數(shù)量
[root@jzyue ~]# awk -F: '{ if($3>1000){i++}} END {print i}' /etc/passwd

(10)..else 語句格式: {if(表達(dá)式){語句;語句;... }else{語句;語句;...}}

awk -F: '{if(3==0){print1} else {print 7}}' /etc/passwd awk -F: '{if(3==0) {count++} else{i++} }' /etc/passwd
awk -F: '{if($3==0){count++} else{i++}} END{print " 管理員個數(shù): "count ; print " 系統(tǒng)用戶數(shù): "i}' /etc/passwd

(11)循環(huán)語句

[root@jzyue ~]# awk 'BEGIN{ i=1; while(i<=10){print i; i++} }'
[root@jzyue ~]# awk -F: '{i=1; while(i<=NF){print i; i++}}' /etc/passwd [root@jzyue ~]# awk -F: '{i=1; while(i<=10) {print0; i++}}' /etc/passwd

(12)1.4.13.10 統(tǒng)計2018年01月25日,8:30-9:00訪問狀態(tài)碼是404*

[root@jzyue ~]# awk '4>="[25/Jan/2018:15:00:00" &&4<="[25/Jan/2018:19:00:00" && 9=="404" {code[9]++} END {for(i in code){print i,code[i]}}' log.bjstack.log
[root@jzyue ~]# awk '9=="404" {code[9]++} END {for(i in code){print i,code[i]}}' log.bjstack.log

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市热幔,隨后出現(xiàn)的幾起案子乐设,更是在濱河造成了極大的恐慌,老刑警劉巖绎巨,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件近尚,死亡現(xiàn)場離奇詭異,居然都是意外死亡场勤,警方通過查閱死者的電腦和手機(jī)戈锻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門歼跟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人格遭,你說我怎么就攤上這事哈街。” “怎么了拒迅?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵骚秦,是天一觀的道長。 經(jīng)常有香客問我璧微,道長作箍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任前硫,我火速辦了婚禮胞得,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘屹电。我一直安慰自己懒震,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布嗤详。 她就那樣靜靜地躺著个扰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪葱色。 梳的紋絲不亂的頭發(fā)上递宅,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天,我揣著相機(jī)與錄音苍狰,去河邊找鬼办龄。 笑死,一個胖子當(dāng)著我的面吹牛淋昭,可吹牛的內(nèi)容都是我干的俐填。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼翔忽,長吁一口氣:“原來是場噩夢啊……” “哼英融!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起歇式,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤驶悟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后材失,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痕鳍,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了笼呆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片熊响。...
    茶點(diǎn)故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖诗赌,靈堂內(nèi)的尸體忽然破棺而出耘眨,到底是詐尸還是另有隱情,我是刑警寧澤境肾,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站胆屿,受9級特大地震影響奥喻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜非迹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一环鲤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧憎兽,春花似錦冷离、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至亿汞,卻和暖如春瞭空,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疗我。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工咆畏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吴裤。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓旧找,卻偏偏與公主長得像,于是被迫代替她去往敵國和親麦牺。 傳聞我的和親對象是個殘疾皇子钮蛛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 什么是運(yùn)維 術(shù)語名詞 IDC--(Internet Data Center)互聯(lián)網(wǎng)數(shù)據(jù)中心愿卒,主要服務(wù)包括整機(jī)租用、...
    lyh165閱讀 2,686評論 0 19
  • sed與awk實(shí)例 文本間隔 在每一行后面增加一空行 將原來的所有空行刪除并在每一行后面增加一空行潮秘。這樣在輸出的文...
    stuha閱讀 1,893評論 0 21
  • 基礎(chǔ)命令 主要的命令和快捷鍵 Linux系統(tǒng)命令由三部分組成:cmd + [options]+[operation...
    485b1aca799e閱讀 1,088評論 0 0
  • 第 2 章 SHELL 基礎(chǔ)知識2.1 shell腳本我們在上面簡單介紹了一下什么是shell腳本琼开,現(xiàn)在我們來進(jìn)一...
    LiWei_9e4b閱讀 1,562評論 0 0
  • 一、前言 我們都知道枕荞,在Linux中一切皆文件柜候,比如配置文件搞动,日志文件,啟動文件等等渣刷。如果我們相對這些文件進(jìn)行一些...
    以七v為書閱讀 1,509評論 0 5