Linux中grep、sed、awk使用介绍
linux文件操作命令介绍
1)grep
grep 用于在文件中查找符合条件的记录
grep 参数 过滤条件 文件
过滤的条件中可使用正则表达式
-c 显示符合的行数
-i 忽略大小写
-n 显示符合要求的记录,包含行号
-v 显示不符合要求的记录
-A n 显示符合要求的记录,及下面的n行
-B n 显示符合要求的记录,及上面的n行
-C n 显示符合要求的记录,及上面和下面各n行
-E 显示符合多个条件的记录
--color 高亮显示关键字
多个条件选择过滤,使用 -E参数
多个并且条件过滤,使用多个grep 、管道符|
例如:grep -n 'perl' yum.log-20160823
grep -E 'perl|sql' yum.log-20160823
2)sed
sed 用于查询符合条件的文件并输出到屏幕或将查询结果写到文件
sed 选项 命令 文件
选项:
-n 对经过处理的行才会显示在屏幕上
-i 直接修改原文件中的数据
命令:
新增 a a后面可接受的字符,新字符插入到目前行的下一行 i i后面可接受的字符,新字符插入到目前行的上一行
替换 c c后面的字符,替换n1,n2之间的字符,s 替换
删除 d 删除指定行的字符
显示 p 显示指定行的字符
a)显示第几行记录,用字母p
单引号中的n表示第几行
显示第n行记录 sed -n 'n'p 文件名
显示第m,n行记录 sed -n 'm,n'p 文件名
显示最后一行记录 sed -n '$'p 文件名
b)显示包含条件的记录
sed -n '/tomcat/'p /var/log/tomcat.log
c)显示包含多个条件的记录
sed -e '/tomcat/'p -e '/2017-03-08/'p -n /var/log/tomcat.log
d)删除第几行记录,用字母d
单引号中的n表示第几行
删除第n行记录 sed -n 'n'd 文件名
删除第m,n行记录 sed -n 'm,n'd 文件名
删除最后一行记录 sed -n '$'d 文件名
e)替换字符,字符s表示替换,g表示在文件中所有出现的地方进行替换
sed '1,9s/09/nine/g' /var/log/tomcat.log
f)将匹配到字符进行位置替换,替换的字符用()包裹起来,括号前需加\,屏蔽特殊字符
sed 's/\(test\)\(log\)/\2\1/g' /var/log/tomcat.log
g)修改文件,字符s表示替换,g表示在文件中所有出现的地方进行替换
sed -i '1,9s/09/nine/g' /var/log/tomcat.log
3)awk
awk 用于从文件中截取符合条件的记录
awk 参数 过滤条件 文件
a)显示获取到的符合条件的记录,文件中的列以:分割,显示第3列记录
head -n10 /var/log/tomcat.log| awk -F':' '{print $3}'
b)显示符合条件记录
awk '/log/' /var/log/tomcat.log
c)显示符合多个条件记录
awk -F':' '/log/ {print $1,$4} /2017/ {print $2,$7}' /var/log/tomcat.log
d)可以进行逻辑条件的判断,> >= < <= !=等,条件中加""表示字符,否则表示为数字
awk -F':' '$2>100' /var/log/tomcat.log
内置函数
gsub(r,s):在$0中用s代替r
index(s,t):返回s中t的第一个位置
length(s):s的长度
match(s,r):s是否匹配r
split(s,a,fs):在fs上将s分成序列a
substr(s,p):返回s从p开始的子串
BEGIN和END本质是一个pattern。
BEGIN用于awk程序开始开始前,做一些初始化的工作;
END用于awk程序结束前,做一些收尾的工作。
awk中使用shell中定义的变量:使用单引号即可
awk中使用shell命令:使用双引号,或者system命令
getline:awk里,从文件中读取变量到awk中
FILENAME
FS 分隔符,默认是空格
NR 当前行数,从1开始
NF 当前记录字段个数
$0 当前记录
$1~$n 当前记录第n个字段
NF:用分割符分割后,产生的列数
$NF:最后1列的值
Linux中grep、sed、awk使用介绍的更多相关文章
- Linux三剑客grep/sed/awk
grep/sed/awk被称为linux的“三剑客” grep更适合单纯的查找或匹配文本: sed更适合编辑匹配到的文本: awk更适合格式化文本,对文本进行较复杂各式处理: Grep --color ...
- linux三剑客grep|sed|awk实践
最好先学习正则表达式的基本用法,以及正则表达式BREs,EREs,PREs的区别 此坑待填 grep sed awk
- Linux命令-grep,sed,awk
grep (global search regular expression[RE] and print out the line) 正则表达式全局搜索并将行打印出来 在文件中查找包含字符串" ...
- Linux学习grep,sed,awk工具的使用
1.grep:根据模式搜索文本并将符合模式的文本显示出来(pattern模式:由文本字符和正则表达式元字符所匹配出来的条件) 注:alias grep='grep --color' -c:打印符合要求 ...
- Linux三剑客grep、awk和sed
grep,sed 和 awk是Linux/Unix 系统中常用的三个文本处理的命令行工具,称为文本处理三剑客.本文将简要介绍这三个命令并给出基本用法. 管道 在介绍这两个命令之前,有必要介绍一下Uni ...
- Linux中使用sed命令或awk命令修改常规配置文件
一.方案: Linux中使用sed命令或awk命令修改常规配置文件 二.步骤: 1.假设有一个a.txt,内容如下: #!/bin/bash aa= bbb= ccc= #ddd= 2.如果想要把里面 ...
- linux中grep命令的使用
转载:http://blog.csdn.net/universsky/article/details/8866402 linux中grep命令的使用 grep (global search regul ...
- Linux中grep和egrep命令详解
rep / egrep 语法: grep [-cinvABC] 'word' filename -c :打印符合要求的行数-i :忽略大小写-n :在输出符合要求的行的同时连同行号一起输出-v ...
- linux中读写锁的rwlock介绍-nk_ysg-ChinaUnix博客
linux中读写锁的rwlock介绍-nk_ysg-ChinaUnix博客 linux中读写锁的rwlock介绍 2013-02-26 13:59:35 分类: C/C++ http://yaro ...
- 12个 Linux 中 grep 命令的超级用法实例
12个 Linux 中 grep 命令的超级用法实例 你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧. grep是每个Linux发行版都预装的一 ...
随机推荐
- android 自动生成jni C语言头文件
1. 在类里面申明 public native xxx(); 函数接口2. 在安卓工程src目录下 使用命令 javah 包名.类名 生成该类所申明的c语言接口
- 比利牛斯獒犬 flask web
1. 使用 session.get('name') 直接从会话中读取 name 参数的值.和普通的字典一样,这里使用 get() 获取字典中键对应的值以避免未找到键的异常情况,因为对于不存在的键, g ...
- 将java项目打包成jar包,之后在制作成可执行的exe文件
1.利用eclipse选择 2.利用ex4j,详情见百度教程http://jingyan.baidu.com/article/00a07f38aad55182d128dc4c.html
- C#backgroundWorker用法
1.在 WinForms 中,有时要执行耗时的操作,在该操作未完成之前操作用户界面,会导致用户界面停止响应.解决的方法就是新开一个线程,把耗时的操作放到线程中执行,这样就可以在用户界面上进行其它操作. ...
- 2019ICPC西安邀请赛 - B. Product - 数论
打印的时候麻烦把:https://blog.csdn.net/skywalkert/article/details/50500009这个打印下来. 求\(\prod\limits_{i=1}^{n} ...
- HDU1059 【DP·二进制数优化】
题意: 有6种不同价值的物品,然后问你能不能分成两半使得两堆价值相等: 思路: 一共有20000*6=120000 多的价值, 总共背包有20000个,价值最大是120000,看看能不能DP到valu ...
- C++函数调用过程深入分析
http://blog.csdn.net/dongtingzhizi/article/details/6680050 0. 引言 函数调用的过程实际上也就是一个中断的过程,那么C++中到底是怎样实现一 ...
- JS中的柯里化(currying) 转载自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com]
JS中的柯里化(currying) by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpr ...
- scrapy 安装错误
真的是各种坑啊,哎 安装显示 Building wheel for twisted (setup.py) ... error 解决方法: https://askubuntu.com/questions ...
- ShareSDK集成遇到问题
解决方案