话.linux三剑客之利刃出鞘

剑客起源于唐代传奇的中国武侠小说中,他们所使用的兵器的地位是至高无上的,一直也是兵器中的王者,符合了在中国古代社会的地位。今天给大家详细的总结一下linux系统下的利刃兵器:awksedgrep

三剑客介绍(grep、sed、awk)

老三:grep

是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来

# grep 常用选项 
-c #只输出匹配行的计数 
-i #不区分大小写 
-h #查询多文件时不显示文件名 
-l #查询多文件时只输出包含匹配字符的文件名 
-n #显示匹配行及行号 
-s #不显示不存在或无匹配文本的错误信息 
-v #显示不包含匹配文本的所有行 
-E #支持扩展的正则表达式 
-P #调用perl语法正则


老二:sed

对文本的处理很强大,增、删、改、查样样能做

# sed 常用选项 -r #在脚本中使用扩展正则表达式 -n #不打印所有行到标准输出 -i #直接修改文件

老大:awk(带头大哥)

可以理解为一门编程语言,可以自定义变量,有条件语句,有循环,有数组,有正则,有函数

# awk 常用变量 
$n #当前记录的第n个字段,字段间由 FS分隔 
$0 #完整的输入记录 
FNR #同NR,但相对于当前文件 
FS #字段分隔符(默认是任何空格) 
NF #当前记录中的字段数 
NR #当前记录数 
OFS #输出字段分隔符(默认值是一个空格) 
ORS #输出记录分隔符(默认值是一个换行符) 
# awk 常用字符串函数 
sub #匹配记录中最大、最靠左边的子字符串的正则表达式,并用替换字符串替换这些字符串 
gsub #整个文档中进行匹配 
index #返回子字符串第一次被匹配的位置 
substr #返回从位置1开始的子字符串,如果指定长度超过实际长度,就返回整个字符串 
split #可按给定的分隔符把字符串分割为一个数组,默认按当前FS值进行分割 
length #返回记录的字符数 
toupper #可用于字符串大小间的转换,该功能只在gawk中有效 
tolower #可用于字符串大小间的转换,该功能只在gawk中有效 
# awk 常用函数 
srand(x) #x是rand()函数的种子 
int(x) #取整 
rand() #产生一个大于等于0而小于1的随机数

案例使用(有很多种方法,今天我们这里只说三剑客的使用方法)

1.快速取出本机IP?

# grep ifconfig eth0|grep -Po ‘(?<=dr:)\S+‘ 
# sed  ifconfig eth0|sed -rn ‘s#.*r:(.*)  B.*#\1#gp‘ 
# awk  ifconfig eth0|awk -F ‘[ :]+‘ ‘NR==2{print $4}‘

2.原始数据格式替换成新数据格式(grep自己无法实现该功能了)

原始数据:
17/Apr/2015:09:29:24 +0800
17/Apr/2015:09:30:26 +0800
17/Apr/2015:09:31:56 +0800
18/Apr/2015:09:34:12 +0800
18/Apr/2015:09:35:23 +0800
19/Apr/2015:09:23:34 +0800
19/Apr/2015:09:22:21 +0800
20/Apr/2015:09:45:22 +0800
期望结果:
2015-04-17 09:29:24+0800
2015-04-17 09:30:26+0800
2015-04-17 09:31:56+0800
2015-04-18 09:34:12+0800
2015-04-18 09:35:23+0800
2015-04-19 09:23:34+0800
2015-04-19 09:22:21+0800
2015-04-20 09:45:22+0800

# sed

sed -rn ‘s#Apr#04#g;s#^(.*)/(.*)/(....):(.*) (.*)#\3-\2-\1 \4\5#p;‘ test.log sed -rn ‘s#^(.{2})/(.{3})/(.{4}):(.{8}) (.{4})#\3-04-\1 \4\5#p;‘ test.log

# awk

awk -F ‘[/: ]+‘ ‘{sub(/Apr/,"04");printf("%s-%s-%s %s:%s:%s%s\n",$3,$2,$1,$4,$5,$6,$7)}‘ test.log awk ‘{sub(/Apr/,"04");split($0,array,"[/: ]") ;printf("%s-%s-%s %s:%s:%s%s\n",array[3],array[2],array[1],array[4],array[5],array[6],array[7])}‘ test.log

时间: 2024-11-05 01:01:54

话.linux三剑客之利刃出鞘的相关文章

Linux三剑客之grep

linux三剑客之grep grep命令是一个强大的文本搜索工具,全称是Global Regular Expression Print,它能使用正则表达式搜索文本,并把匹配的行打印出来,使用权限是所有用户 1.使用格式 grep [OPTIONS] PATTERN [FILE...] grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...] grep 关键词 文本文件 2.比较常用的参数 -c:仅显示找到的次数 -i:忽略大小写 -n:显示行号 -o:只显示

Linux三剑客企业级经典面试题解答实战

Linux三剑客企业级经典面试题解答实战 说明:来自早晨老男孩教育在线班一期同学的面试题和学生给出的答案整理 面试题:请过滤oldboy.log中在device: {}里面出现了多少次oldboy,过滤并统计出来. oldboy is a linuxer. device: { oo oldboy no sql this is log niu niu } oldboy device: { oldboy no sql this is log niu niu } oldboy device: { ol

Linux 三剑客之一--&gt;grep

======================================================================================== * ######------ Linux 正则表达式 ------###### * ######------ 三剑客 grep 文本过滤 ------######*/==============================================================================

Linux三剑客之grep、egrep及正则表达式使用详解

Linux三剑客是Linux中非常强悍的文本处理工具,掌握三剑客,文处理已想必会有三剑在手,天下我有的感觉,三剑客之grep家族擅长文本搜索,支持以正则表达式进行文本搜索,使得grep非常强悍,以下内容就grep,egrep和正则表达式展开 Linux文本工具三剑客:        grep.egrep.fgrep:文本搜索工具 sed:流编辑器,也是行编辑器 awk:文本格式化工具,文版报告生成器 正则表达式:是由一类字符所书写出的模式(pattern) 作用:配合支持使用正则表达式的文本搜索

就linux三剑客简单归纳

就linux三剑客简单归纳: 1:awk 习题1:用 awk 中查看服务器连接状态并汇总 netstat -an|awk '/^tcp/{++s[$NF]}END{for(a in s)print a,s[a]}' ESTABLISHED 1 LISTEN 20 习题2:统计 web 日志访问流量,要求输出访问次数,请求页面或图片,每个请求的总大小, 总访问流量的大小汇总 awk '{a[$7]+=$10;++b[$7];total+=$10}END{for(x in a)print b[x],

linux三剑客之sed史上最实用教程!

2016老男孩教育的官方博客干货不断,敬请关注! linux三剑客之sed史上最实用教程!猛戳下面地址即可观看! http://blog.oldboyedu.com/commands-sed/

不看绝对后悔的Linux三剑客之awk实战精讲

一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介 awk不仅仅时linux系统中的一个命令,而且是一种编程语言,可以用来处理数据和生成报告(excel).处理的数据可以是一个或多个文件,可以是来自标准输入,也可以通过管道获取标准输入,awk可以在命令行上直接编辑命令进行操作,也可以编写成awk程序来进行更为复杂的运用.本章主要讲解awk命令的运用 1.2 awk环境简介 [[email protected] ~]# cat /etc/redhat-release 

不看绝对后悔的Linux三剑客之sed实战精讲

二.Linux三剑客之sed命令精讲 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件等等.如果我们相对这些文件进行一些编辑查询等操作时,我们可能会想到一些vi,vim,cat,more等命令.但是这些命令效率不高,这就好比一块空地准备搭建房子,请了10个师傅拿着铁锹挖地基,花了一个月的时间才挖完,而另外一块空地则请了个挖土机,三下五除二就搞定了,这就是效率.而在linux中的"挖土机"有三种型号:顶配awk,中配sed,标配grep.使用这些工具,我们

不看绝对后悔的Linux三剑客之grep实战精讲

三.Linux三剑客之grep命令精讲 [命令简介]Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. [功能说明]grep***** ==擅长过滤器,把想要的或者不想要的分离开.Linux三剑客 老三. [用法格式]grep [选项]... PATTERN [FILE]... [参数选项][options]主要参数