grep,sed,awk用法整理
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用法整理的更多相关文章
- linux三剑客grep|sed|awk实践
最好先学习正则表达式的基本用法,以及正则表达式BREs,EREs,PREs的区别 此坑待填 grep sed awk
- Linux三剑客grep/sed/awk
grep/sed/awk被称为linux的“三剑客” grep更适合单纯的查找或匹配文本: sed更适合编辑匹配到的文本: awk更适合格式化文本,对文本进行较复杂各式处理: Grep --color ...
- 【Linux】 字符串和文本处理工具 grep & sed & awk
Linux字符串&文本处理工具 因为用linux的时候主要用到的还是字符交互界面,所以对字符串的处理变得十分重要.这篇介绍三个常用的字符串处理工具,包括grep,sed和awk ■ grep ...
- 三个支持正则表达式的行处理的工具: grep/sed/awk
grep: 全称Global Regular Expression Print, 是干什么的,不多说了: 用法:grep [-options] [pattern] [filename] 选项: -c: ...
- [svc]linux正则实战(grep/sed/awk)
企业实战: 过滤ip 过滤出第二行的 192.168.2.11. eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ine ...
- SED命令用法整理
sed '/Started/'q 匹配到Started字符串则退出sed命令 sed '/Started/{/in/q}' 同时匹配到Started和in两个字符时则退出sed命令 ------- ...
- 5_find grep sed awk 详解
find :查找文件系统中指定的文件.可以按文件名(-name) 权限(-perm) 归属人 查找. find 要查找文件的路径 表达式 *通配符 可以添加在文件名的任意位置 常用的例子( ...
- grep sed awk 3个Linux中对文件内容操作的命令
在学习Linux命令中,发现3个有关于文件内容操作的命令grep,sed和awk,在这里简单汇总这3个命令主要作用,在实际中找到最合适的情景应用,详细用法可以参考其他文章. 1.grep命令 主要作用 ...
- AWK用法整理
printf "1:2::3:::4::::5" | awk -F '[:]+' '{print $4}' [:]+ 表示以1个或多个 :(冒号)作为分隔符 ip addr | ...
随机推荐
- 初步了解Spring
1.了解“控制反转” 控制反转也称为依赖注入,是面向对象编程中的一种设计理念,用来降低程序代码之间的耦合度. 下面是一个最简单的打印机实例 纸张接口,纸张有大小 继承它的有两个类,两种纸张大小的类 A ...
- Linux-01
Linux各目录的作用 /bin/ 存放系统命令的目录,普通用户和超级用户都可以执行.不过放在/bin下的命令在单用户模式下也可以执行 /sbin/ 保存和系统环境设置相关的命令,只有超级用户可以使用 ...
- React-Native android 开发者记录
1.安装 安装步骤不多废话,按照官网步骤执行即可 安装完之后,react-native run-android发现报错,页面出不来 Error: Unable to resolve module `. ...
- 100-days: twenty-three
Title: The surprising connection between single women and gentrification connection n.连接,联系,关系:连接点; ...
- redis缓存与数据库一致性问题
一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统不是严格要求 “缓存+数据库” 必须保持一致性的话,最好不要做这个方案,即:读请求和写请求串行化,串到一个内存队列里去. ...
- 解决npm ERR! Unexpected end of JSON input while parsing near的方法
这两天执行 npm install 时会报错误: npm ERR! Unexpected end of JSON input while parsing near 清除cache npm cache ...
- yum 安装时遇到“UnicodeDecodeError: 'ascii' codec”的问题
今天新安装了一个6.9系统,配置好本地yum源后,用yum安装时报了以上的错误信息,在/etc/yum.repos.d/目录下多出了TTT的一个目录 (手动问号),在百度上查了一些文档. 解决方法:1 ...
- vue slot 复用
话不投机半句多,直接上代码 有3步 第一步:创建渲染slot的组件 重要 第二步:为slot添加父组件数据(props) 重要 第三步:使用 第一步:创建渲染slot的组件 首选创建一个单文件组价,由 ...
- 爬虫利器 Puppeteer 实战
Puppeteer 介绍 Puppeteer 翻译是操纵木偶的人,利用这个工具,我们能做一个操纵页面的人.Puppeteer是一个Nodejs的库,支持调用Chrome的API来操纵Web,相比较Se ...
- c语言实验一
#include <stdio.h> int main(){ int a,b,sum; a=123; b=456; sum = a + b; printf("sum is %d\ ...
