5_find grep sed awk 详解
find :查找文件系统中指定的文件。可以按文件名(-name) 权限(-perm) 归属人 查找。
find 要查找文件的路径 表达式
*通配符 可以添加在文件名的任意位置
常用的例子(具体可参照 find --help):
find . -name 1.txt 在当前目录以及子目录下查找文件 1.txt
find /tmp -name 1.txt 在/tmp目录以及子目录下查找文件 1.txt
find /bin/ -perm 4755 | xargs ls -al 管道符号的作用是把前面的输出结果作为后面的参数再去执行后面的部分。
find /tmp -name "1.txt " | -exec ls -l
find /tmp -name '*.txt' -exec ls -l {} \;
grep:是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
grep [命令选项] 要查找的匹配模式 [要查找的文件名]
-c 显示每行的匹配次数
-i 不区分大小写
-n 显示出行号和行
-v没有匹配到的行输出来
-r 递归查找
-A 显示匹配行以及行以下3行 grep -A 3 root /etc/passwd
-B 显示匹配行以及行以上3行 grep -B 3 root /etc/passwd
-C 显示匹配行以及以下和以上3行 grep -C 3 root /etc/passwd
grep cams /root/1.txt 在1.txt文件中查找cams字符串
grep -r cams /root/cams 在/root/cams目录下及其子目录下的所有文件中查找cams字符串,并把匹配的行打印出来。
grep -A 1 'root' /etc/passwd
grep 除了能够查找文件外,还能够将任意输出流重定向到grep 进行查找:
ps aux | grep ora 查找进程名中包含ora的所有进程信息
sed :是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据进行替换、删除、新增、选取等特定工作。
sed 参数[-nefr] 动作 文件
参数:
-n :安静模式。只有经过sed特殊处理的那一行(或者动作)才会被列出来。
-f:直接将sed的动作写在一个文件内,-f filename ,则可以运行filename 内的sed动作。
-r:默认是基础正规表示法语法
-i :直接修改读取的文件内容,而不是输出到终端。
动作:
a:新增,a的后面可以接字符串,而这些字符串会在目前的下一行出现。
c:取代,c的后面可以接字符串。
d:删除,d的后面不接任何东西。
i:插入,i后面可以接字符串,这些字符串会在新的一行出现(目前的上一行)。
p:列印,将某个选择的数据打印出来,一般和sed -n结合
s:取代,可以直接取代,通常搭配正规表示法。例:1,20s/old/new/g 把第一行至第二十行的old替换为new ,g全部替换
常用例子,可以自行尝试以下语句具体是什么意思:
sed后面的动作,只能用单引号
nl /etc/passwd | sed '2,5d'
nl /etc/passwd | sed '2d'
nl /etc/passwd | sed '2,$d'
nl /etc/passwd | sed '2a drink tea '
nl /etc/passwd | sed '2i drink tea '
nl /etc/passwd | sed '2a Drink tea or \
drink beer ?'
nl /etc/passwd | sed '2,5c NO 2-5 number'
nl /etc/passwd | sed -n '5,7p'
nl /etc/passwd | sed -n '/root/p'
nl /etc/passwd | sed '/root/d'
nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;p}'
nl /etc/passwd | sed -n '/bash/{s/bash/bashshell/;p;q}'
sed 's/要被取代的字符串/新的字串/g'
/sbin/ifconfig eth0 | grep 'inet addr'|sed 's/^.*addr://g'| sed 's/Bcast.*$//g'
/sbin/ifconfig eth0 | grep 'inet addr'|sed 's/^.*addr://g'
nl /etc/passwd | sed -e '3,$d' -e 's/bash/blueshell/'
awk:是一个强大的文本分析工具。通常awk是以文件的一行为单位处理的,awk每接收文件的一行,然后执行相应的命令,来处理文本。
有三种方式调用awk:
1.命令行方式(重点介绍)
2.shell脚本方式
3.将所有的awk命令插入一个单独文件,然后调用
具体实例:
1、last -n 5 | awk '{print $1}' 打印出前五行的第一列($0表示所有列,$表示第n列)
2、cat /etc/passwd | awk -F ':' '{print $1"\t"$7}'
只显示/etc/passwd 的第一和第七列,中间以tab键分隔。 -F 指定域分隔符为 ":" 。
3、cat /etc/passwd | awk -F ':' 'BEGIN {print "name,shell"} {print $1 ","$7} END {print "blue,/bin/nosh"}'
只显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分隔,而且所有行 添加列名name,shell,在最后一行添加"blue,/bin/nosh"。
4、 awk -F: '/root/{print $7}' /etc/passwd
搜索/etc/passwd有root关键字的所有行,并显示对应的shell。
以下是awk编程,可以自定义变量,条件语句(从c语言借鉴来的),循环语句,数组。
5、awk '{count++;print $0;} END{print "user count is",count}' /etc/passwd
统计/etc/passwd 的账户人数
6、awk 'BEGIN {count=0;print "[start]user
count is ", count} {count=count+1;print $0;} END {print "[end] user
count is",count}' /etc/passwd
这个也是统计/etc/passwd 的账户人数
常用的也就这么多吧!写总结到这吧,以后发现了新大陆,再过来补充。
下面说一下sed和awk的区别:
awk是一种程序语言,对文档资料的处理具有很强的功能,awk擅长从格式化报文或一个大的文本中抽取数据。
sed是一个精简的、非交互式的编辑器,它能执行与编译vi相同的编辑任务。
总结:
1、如果文件是格式化的,即由分隔符分为多个域的,优先使用awk;
2、awk适合按列(域)操作,sed适合按行操作。
3、awk适合对文件的抽取整理,sed适合对文件的编辑。
注:sed和awk对文件的编辑并没有对文件本身改变,只是把输出的进行改变。
5_find grep sed awk 详解的更多相关文章
- linux四剑客-grep/find/sed/awk/详解-技术流ken
四剑客简介 相信接触过linux的大家应该都学过或者听过四剑客,即sed,grep,find,awk,有人对其望而生畏,有人对其爱不释手.参数太多,变化形式太多,使用超级灵活,让一部分人难以适从继而望 ...
- 【linux】linux命令grep + awk 详解
linux命令grep + awk 详解 grep:https://www.cnblogs.com/flyor/p/6411140.html awk:https://www.cnblogs.com ...
- sed命令详解 vim高级技巧 shell编程上
第1章 sed命令详解 1.1 查找固定的某一行 1.1.1 awk命令方法 [root@znix ~]# awk '!/oldboy/' person.txt 102,zhangyao,CTO 10 ...
- 【转】【Linux】sed命令详解
sed命令详解 sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令 ...
- 转 linux之sed命令详解
http://jingyan.baidu.com/article/fec4bce2228f60f2618d8bb0.html sed 编辑裁剪文件命令 sed -i "s/\/db\/te ...
- Linux文本处理三剑客之grep及正则表达式详解
Linux文本处理三剑客之grep及正则表达式详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux文本处理三剑客概述 grep: 全称:"Global se ...
- 干货!上古神器 sed 教程详解,小白也能看的懂
目录: 介绍工作原理正则表达式基本语法数字定址和正则定址基本子命令实战练习 介绍 熟悉 Linux 的同学一定知道大名鼎鼎的 Linux 三剑客,它们是 grep.awk.sed,我们今天要聊的主角就 ...
- (转)awk 详解
出处:https://blog.51cto.com/yijiu/1358416 awk详解 awk是一款非常牛逼的报告生成工具,能够将文本格式化成显示为比较直观的结果 废话不多说,直接上例子 awk的 ...
- Linux学习之sed命令详解
概述 sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区 ...
随机推荐
- 简单的小程序实现ATM机操作
简单的小程序实现ATM机操作 代码如下: package Day06; import java.util.Scanner; public class TestAccount { public stat ...
- 玩玩微信公众号Java版之四:自定义公众号菜单
序: 微信公众号基本的菜单很难满足个性化及多功能的实现,那么微信能否实现自定菜单呢,具体的功能又如何去实现么?下面就来学习一下微信自定义公众号菜单吧! 自定义菜单接口可实现多种类型按钮,如下: 1.c ...
- python基础(9):文件处理
很多软件都会有有对文件处理的功能.今天我们就来学习文件处理. 文件处理 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,可以将结果赋值给一个变量,这个变量我们称为句柄.这样我们就可以通过这个 ...
- HTML随笔2
1. 快捷键: * div*8 + tab键 - 可快捷出现八个div标签. * 标签名."名称" + tab键 - 可快速出现类名为"名称"的该标签,如果不加 ...
- 用letsencrypt搭建免费的https网站
环境:阿里云服务器centos7.3,nignx,letsencrypt做免费的https证书 Let’s Encrypt官网:https://letsencrypt.org/ 1.服务器开放端口:4 ...
- Web测试与APP测试有哪些异同?
1.相同点 不管是传统行业的web测试,还是新兴的手机APP测试,都离不开测试的基础知识,即是不管怎么变,测试的原理依然会融入在这两者当中. 1)设计测试用例时,依然都是依据边界值分析法.等价类划分等 ...
- myeclipse项目部署到idea常见问题
由于myeclipse是付费产品,经过几次破解不成功后,遂弃之,转投IntelliJ IDEA门下.但这就出现一个问题了,以前用的eclipse.myeclipse以及spring tools sui ...
- 小程序server-3-搭建WebSocket 服务
小程序server-3-搭建WebSocket 服务: 1.安装 Node 模块 使用 ws 模块来在服务器上支持 WebSocket 协议,下面使用 NPM 来安装: cd /var/www/wxp ...
- LoadRunner性能测试-loadrunner工具破解
Loadrunner11破解 破解工具下载:http://pan.baidu.com/disk/home?errno=0&errmsg=Auth%20Login%20Sucess&&a ...
- python 文件打开小知识
一个文件被打开后,你有一个file对象,你可以得到有关该文件的各种信息. file.name : 返回文件的名称 file.closed: 文件关闭返回值为True,否则为False file.mod ...