Linux 三剑客实例详解「grep、sed 、awk」

简介

Linux 操作文本的三大利器分别是 grep、sed 、awk,简称三剑客。

大师兄 awk:最擅长取列;二师兄 sed:最擅长取行;三师兄 grep:最擅长过滤。

正则表达式

正则表达式

*** 三位师兄闪亮登场啦 ***

大师兄 -- AWK  

1、awk 是对文本进行格式化的工具,适合处理比较复杂的格式处理。

2、有多个版本: 1、new awk: nawk ;2、gawk, awk

3、awk 命令格式:

        awk [options] 'script' file1  file2, ...

        awk [options] 'PATTERN {acticon}'  file1 file2, ...

    格式说明:

        1、pattern部分决定动作语句何时触发及触发事件:BEGIN、END

        2、action 对数据进行处理,放在{}内指明:print、printf

        3、最常用的是 print,默认以空白字符分隔

              $0 代表整行,$1 代表第 1 段,$2  代表第 2 段,以此类推,$NF 代表最后一个字段,多个字段直接用逗号隔开

              awk '{print $1, $2}' xxx.log

              打印操作支持拼接打印,如:awk '{print "first" $1, $2}' xxx.log

    4. options 参数:输入分隔符,默认以空白字符分隔,通过 -F 选项来执行分隔符

        awk -F '#' '{print $1,$2}'  test

输出分隔符,默认情况下输出分隔符是空格,使用内置变量 OFS 来设定输出分隔符,需要加上 -v 选项

awk -v OFS="-->" '{print $1,$2}' test

  5. awk 变量

      FS:输入字段分隔符,默认空白字符,一般需要加 -F

      OFS:输出字段分隔符,默认是空格,一般需要加 -v

       NF:分隔后的字段数量

       NR:当前行的行号

  6. pattern 模式:模式是条件,符合条件的行, awk 才会进行处理

     关系运算模式:awk -F '#' 'NF==5 {print $1}' test

     如果行的分段数量为5 的话,进行打印操作,其他的类似,如 NF>2,NF<4,$1==1234 等都是判断条件

      awk -F '#'  'NF>=4 && NF<=5 {print $1}' test

二师兄 -- sed

1、sed 是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用 sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。

2、sed 命令格式:

    sed  [options]... 'script' inputfile

选项

1、-n:不输出模式空间内容到屏幕,即不自动打印

2、-e:多点编辑

3、-f /PATH/SCRIPT_FILE:从指定文件中读取编辑脚本

4、-r:支持使用扩展正则表达式

5、-i:直接编辑文件

6、-i.bak:备份文件并原处编辑

script 地址定界

1、不给地址:对全文进行处理

2、单地址:

       #:指定的行; $:最后一行

      /pattern/:被此处模式所能够匹配到的每一行

编辑命令

1、d 删除模式空间匹配的行,并立即启用下一轮循环

2、p 显示符合条件的行,追加到默认输出之后

3、a [\]text1 在指定行后面追加文本,支持使用\n实现多行追加

4、i [\]text 在行前面插入文本

5、c [\]text 替换行为单行或多行文本

6、w /path/somefile 保存模式匹配的行至指定文件

7、r /path/somefile 读取指定文件的文本至模式空间中匹配到的行后

8、= 为模式空间中的行打印行号

9、! 模式空间中匹配行取反处理

10、s///:查找替换,支持使用其它分隔符,s@@@,s###

替换标记:

1、g 行内全局替换

2、p 显示替换成功的行

3、w /PATH/TO/SOMEFILE 将替换成功的行保存至文件中

实例说明:

sed -n 2p test     打印第 2 行内容

sed -n 2,5p test    打印第 2--5 行内容

sed -i 's/a/v/g' test    将文件中的 a 全部替换为 v 「sed替换格式是:sed -i ‘s/要替换的内容/替换成的内容/g' 文件名」

三师兄 -- grep

1、grep 强大的文本搜索工具,根据模式搜索文本,并将符合模式的文本行显示出来。

2、gerp 命令格式:

      grep 【option】 pattern 【file】

option:

-i:忽略字符大小写

-n:显示匹配的行号

-v:显示没有被匹配的行

--color:将匹配的字符以高亮颜色标记出来

-c:统计匹配的行数

-o:仅显示匹配到的字符串

-q:静默模式,不输出任何信息

-e:实现多个选项间的逻辑 or 关系

-v:反转查找

-w:匹配整个单词

-A:after ,显示后行

-B:before ,显示前行

-C:context,显示前后行

-E:相当于 egrep,即 grep -E = egrep

实例说明:

grep -i 'b' test  在文件 test 中查找字符 b

grep -q 'abc' test  静默执行。不会输出任何信息,如果命令运行成功返回0,失败则返回非0值。一般用于条件测试

grep -n 'v' test 查找包含字符 v 的行数

grep -nv 'v' test   查找不包含字符 v 的行数

grep -n v$ test  查找以 v 结尾的行

grep -v 'v' test  反向查找

grep 'ljl' -A 2 test  输出匹配结果行的后 2 行

grep 'wooow' -B 2 test  输出匹配结果行的前 2 行

grep 'wooow' -C 2 test   输出匹配结果行的前后 2 行

grep -n 'abc' test1 test2 test3 或 grep -n 'abc' test*  多个文件查找匹配的结果行


                             (#^.^#)---我是有底线的---(#^.^#)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341