grep

-c 打印出符合要求的行数

-i 忽略大小写              ignore

-n 连同符号一起输出          num

-v 打印出不符合要求的行

-A2 本行及下面两行

-B2 本行及上面两行

-C2 本行及上下两行

grep ^root passwd    #过滤以root开头的行
grep root$ passwd    #过滤以root结尾的行
grep -i ^root passwd    #不区分大小写,过滤以root结尾的行
grep -E "^root|root$" passwd    #过滤以root开头或者以root结尾的行,-E表示扩展正则表达式
grep -E -v "^root|root$" passwd    #-v表示反向过滤
grep -E -v "^root|root$" passwd | grep root    #过滤root在中间的行
grep -i root passwd | grep -v -i -E "^root|root$"    #过滤root在中间的行
grep -e "11" -e "22" filename   #-e可以匹配多个模式

grep 'r.t' test     #过滤r和t之间只有一个字符
grep 'r..t' test     #过滤r和t之间有二个字符
grep 'r*t' test     #过滤r出现的任意次数
grep 'r\**t' test    #过滤r,t之间有0个字符
grep 'ro*t' test    #过滤r和t之间o出现的任意次数
grep -E 'ro*t' test    #过滤r和t之间o出现的任意次数
grep -E 'ro?t' test    #过滤r和t之间o出现的0和1次
grep -E 'ro{1,}t' test    #过滤r和t之间o出现的1以上的次数
grep -E 'ro{,3}t' test    #过滤r和t之间o出现的3以下的次数

sed [options] ‘[command]’ filename (p为打印  d为删除 s为替换 i为直接修改)

sed命令的选项(option):

-n :只打印模式匹配的行

-e :直接在命令行模式上进行sed动作编辑,此为默认选项

-f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作

-i :直接修改文件内容

sed -n 3p /etc/passwd   #打印文件中的第三行

sed -n ‘/root/’p  #打印包含root的行

sed -e '1,4'p -e '/111/p' -n /etc/passwd  #打印第一行到第四行以及包含111的行

sed 1d filename   删除第一行

sed '1,2 s/ot/to/g'  filename  #替换1到2行中的ot为to  g表示全局替换   s表示替换开始

sed '/\(rot\)\(.*\)\(bash\)/\3\2\1/'  #将3段内容重新调整顺序  没有加g表示只调整出现的第一个

sed -i ‘s/ot/to/g’  filename   #直接修改文件中ot为to

awk基本用法

awk -F ":"  '{pattern + action}' {filenames}

awk '{print $0}' /etc/passwd  #打印所有/etc/passwd文件内容  $0表示变量本身

awk -F":" '{ print $1 $3 }' /etc/passwd  #表示以冒号作为分隔符  打印第一段和第三段

cat filename |awk -F ':' '$3>="500"'  #查找第三段中大于等于500的数

NF 表分割后共有多少段(也可以表示最后一段的段数)

NR 表示行数

head -n5 filename |awk -F ':' '{print NF}' #打印文件前五行中以:分割后的段数

awk -F ':' 'NR >=20 && $1 ~/ssh/' filename   # 行数大于等于20 且 第一段中包含ssh'的记录

awk -F ':' '{$7=$4+$3;print $3,$4,$7}'  filename  #列出第三段  第四段 以及三四段的总和

awk -F ':' ‘$1=="root"’ filename |sed 's/root/toor/'  #找到文件中第一段为root的记录并将root改为toor

awk -F ':' ‘{print $1"@"$NF}’  filename   #打印第一段@最后一段的段数

awk -F ':' '{sum+=$4}; END{print sum}' filename #以冒号分割将第四段相加

df -h|grep /dev/sda1|awk '{print $5}'|cut -f1 -d%  #检测硬盘使用情况   cut经常和awk一起用 -f表示第一段 -d后面接分隔符 -c 6,9  表示切割出第6到第9个字符

grep,sed,awk用法整理的更多相关文章

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

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

  2. Linux三剑客grep/sed/awk

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

  3. 【Linux】 字符串和文本处理工具 grep & sed & awk

    Linux字符串&文本处理工具 因为用linux的时候主要用到的还是字符交互界面,所以对字符串的处理变得十分重要.这篇介绍三个常用的字符串处理工具,包括grep,sed和awk ■ grep ...

  4. 三个支持正则表达式的行处理的工具: grep/sed/awk

    grep: 全称Global Regular Expression Print, 是干什么的,不多说了: 用法:grep [-options] [pattern] [filename] 选项: -c: ...

  5. [svc]linux正则实战(grep/sed/awk)

    企业实战: 过滤ip 过滤出第二行的 192.168.2.11. eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ine ...

  6. SED命令用法整理

    sed '/Started/'q  匹配到Started字符串则退出sed命令 sed '/Started/{/in/q}'  同时匹配到Started和in两个字符时则退出sed命令 ------- ...

  7. 5_find grep sed awk 详解

    find :查找文件系统中指定的文件.可以按文件名(-name)  权限(-perm) 归属人 查找. find   要查找文件的路径   表达式 *通配符  可以添加在文件名的任意位置 常用的例子( ...

  8. grep sed awk 3个Linux中对文件内容操作的命令

    在学习Linux命令中,发现3个有关于文件内容操作的命令grep,sed和awk,在这里简单汇总这3个命令主要作用,在实际中找到最合适的情景应用,详细用法可以参考其他文章. 1.grep命令 主要作用 ...

  9. AWK用法整理

    printf "1:2::3:::4::::5" | awk -F '[:]+' '{print $4}' [:]+ 表示以1个或多个 :(冒号)作为分隔符 ip  addr  | ...

随机推荐

  1. mybatis实现自定义typeHandler

    java8以前的日期处理有多恶心,相信不少人都深有体会.与mabatis集成查询数据库中的日期字段映射为java日期类型或者字符型的时候,会多出一个".0".当然可以自行处理.但是 ...

  2. java中接口和抽象类的异同点

    抽象类和接口的区别:A:成员区别 抽象类: 成员变量:可以变量,也可以常量 构造方法:有 成员方法:可以抽象,也可以非抽象 接口: 成员变量:只可以常量,默认修饰符:public static fin ...

  3. I2C与SMBus

    关于I2C与SMBus,许多人很少去谈论与了解两者的细节差异,包括很多国外的简报,文章也经常将两者混写.交杂描述.交替运用. 确实,在一般运用下,I2C Bus与SMBus没有太大的差别,从实际接线上 ...

  4. python爬虫系列之初识爬虫

    前言 我们这里主要是利用requests模块和bs4模块进行简单的爬虫的讲解,让大家可以对爬虫有了初步的认识,我们通过爬几个简单网站,让大家循序渐进的掌握爬虫的基础知识,做网络爬虫还是需要基本的前端的 ...

  5. django xadmin后台页面实现二级联动

    思路 先找到控件id ,这样就可以监听change事件 然后把自己写的js加入xadmin中 添加url和view,接受ajax请求和发送数据 第一步:找到联动上下级的ID 在浏览器中通过F12查看 ...

  6. ListView的BeginUpdate()和EndUpdate()作用[z]

    [z]https://blog.csdn.net/u011108093/article/details/79448060 许多Windows 窗体控件(例如,ListView 和 TreeView 控 ...

  7. C# 小数点后保留两位小数,四舍五入的函数及使用方法

    1 Math.Round(45.367,2) //Returns 45.37 2 Math.Round(45.365,2) //Returns 45.36 C#中的Round()不是我们中国人理解的四 ...

  8. VBA 插入图片到指定单元格并保存图片为图片文件

    'Upload File to the specific folder Sub UploadImages(s$, c$) 's$ Buttom number 'c$ Specify a locatio ...

  9. PHP整理--MySQL--DOS命令操作数据库

    一.MySQL:关系型数据库,存在表的概念. MySQL的结构:数据库可以存放很多表,每张表可以存放多个字段,每个字段可以存放多个记录. 二.Dos操作数据库 用PHPStudy终端➡其他选项菜单➡M ...

  10. 如何修改PCB后更新到原理图(以AD为例)

    实际绘图过程中会有多种情况发生,例如根据以前的项目做修改应用于新的项目.只有PCB没有原理图....... 如何通过修改PCB后更新到原理图(主要在PCB中增加元器件以及添加网络标号进行连线后更新到原 ...