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使用介绍的更多相关文章

  1. Linux三剑客grep/sed/awk

    grep/sed/awk被称为linux的“三剑客” grep更适合单纯的查找或匹配文本: sed更适合编辑匹配到的文本: awk更适合格式化文本,对文本进行较复杂各式处理: Grep --color ...

  2. linux三剑客grep|sed|awk实践

    最好先学习正则表达式的基本用法,以及正则表达式BREs,EREs,PREs的区别 此坑待填 grep sed awk

  3. Linux命令-grep,sed,awk

    grep (global search regular expression[RE] and print out the line) 正则表达式全局搜索并将行打印出来 在文件中查找包含字符串" ...

  4. Linux学习grep,sed,awk工具的使用

    1.grep:根据模式搜索文本并将符合模式的文本显示出来(pattern模式:由文本字符和正则表达式元字符所匹配出来的条件) 注:alias grep='grep --color' -c:打印符合要求 ...

  5. Linux三剑客grep、awk和sed

    grep,sed 和 awk是Linux/Unix 系统中常用的三个文本处理的命令行工具,称为文本处理三剑客.本文将简要介绍这三个命令并给出基本用法. 管道 在介绍这两个命令之前,有必要介绍一下Uni ...

  6. Linux中使用sed命令或awk命令修改常规配置文件

    一.方案: Linux中使用sed命令或awk命令修改常规配置文件 二.步骤: 1.假设有一个a.txt,内容如下: #!/bin/bash aa= bbb= ccc= #ddd= 2.如果想要把里面 ...

  7. linux中grep命令的使用

    转载:http://blog.csdn.net/universsky/article/details/8866402 linux中grep命令的使用 grep (global search regul ...

  8. Linux中grep和egrep命令详解

    rep / egrep 语法: grep  [-cinvABC]  'word'  filename -c :打印符合要求的行数-i :忽略大小写-n :在输出符合要求的行的同时连同行号一起输出-v ...

  9. linux中读写锁的rwlock介绍-nk_ysg-ChinaUnix博客

    linux中读写锁的rwlock介绍-nk_ysg-ChinaUnix博客 linux中读写锁的rwlock介绍 2013-02-26 13:59:35 分类: C/C++   http://yaro ...

  10. 12个 Linux 中 grep 命令的超级用法实例

    12个 Linux 中 grep 命令的超级用法实例 你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧. grep是每个Linux发行版都预装的一 ...

随机推荐

  1. android 自动生成jni C语言头文件

    1. 在类里面申明 public native xxx(); 函数接口2. 在安卓工程src目录下 使用命令 javah 包名.类名 生成该类所申明的c语言接口

  2. 比利牛斯獒犬 flask web

    1. 使用 session.get('name') 直接从会话中读取 name 参数的值.和普通的字典一样,这里使用 get() 获取字典中键对应的值以避免未找到键的异常情况,因为对于不存在的键, g ...

  3. 将java项目打包成jar包,之后在制作成可执行的exe文件

    1.利用eclipse选择 2.利用ex4j,详情见百度教程http://jingyan.baidu.com/article/00a07f38aad55182d128dc4c.html

  4. C#backgroundWorker用法

    1.在 WinForms 中,有时要执行耗时的操作,在该操作未完成之前操作用户界面,会导致用户界面停止响应.解决的方法就是新开一个线程,把耗时的操作放到线程中执行,这样就可以在用户界面上进行其它操作. ...

  5. 2019ICPC西安邀请赛 - B. Product - 数论

    打印的时候麻烦把:https://blog.csdn.net/skywalkert/article/details/50500009这个打印下来. 求\(\prod\limits_{i=1}^{n} ...

  6. HDU1059 【DP·二进制数优化】

    题意: 有6种不同价值的物品,然后问你能不能分成两半使得两堆价值相等: 思路: 一共有20000*6=120000 多的价值, 总共背包有20000个,价值最大是120000,看看能不能DP到valu ...

  7. C++函数调用过程深入分析

    http://blog.csdn.net/dongtingzhizi/article/details/6680050 0. 引言 函数调用的过程实际上也就是一个中断的过程,那么C++中到底是怎样实现一 ...

  8. JS中的柯里化(currying) 转载自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com]

    JS中的柯里化(currying) by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpr ...

  9. scrapy 安装错误

    真的是各种坑啊,哎 安装显示 Building wheel for twisted (setup.py) ... error 解决方法: https://askubuntu.com/questions ...

  10. ShareSDK集成遇到问题

    解决方案