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命令处理缓冲区 ...
随机推荐
- struts2教程&实例
1.第一个struts2项目 参考官方配置 http://struts.apache.org/getting-started/ github地址:https://github.com/unbeliev ...
- Weak 和 Strong
介绍: ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain.release.autorelease语句.你不再需要担心内存管理,因为编译 ...
- xdu_1064:Desolator in RA2
问题转化为,单个面积*2-交面积.下面求交面积.把直角坐标系中全部转90°,每个方块的坐标都做相应变化,这样会发现新的坐标系中空出了一部分方块,找规律发现,若求交矩形包含的方框数,其中恰好一半是前面空 ...
- Mybatis jpa mini 代码解析
源码地址(git):https://github.com/LittleNewbie/mybatis-jpa 一.Mybatis简介 mybatis中文官方文档:http://www.mybatis.o ...
- unrecognized font family "iconfont2"
起因:使用React Native开发App,需要使用自定义字体iconfont2.ttf,要在xCode中引入该字体 步骤:将字体文件拷贝到项目工程中,在Info.plist文件中添加Fonts p ...
- 最大流当前弧优化Dinic模板
最大流模板: 普通最大流 无向图限制:将无向图的边拆成2条方向相反的边 无源汇点有最小流限制的最大流:理解为水管流量形成循环,每根水管有流量限制,并且流入量等于流出量 有源汇点的最小流限制的最大流 顶 ...
- 防止DDoS攻击的方式
针对企业的DDoS攻击持续增长,根据Akamai的调查报告,2015年DDoS攻击增长了史无前例的180% !面对 DDoS 攻击性挑战,我们应该建立有效的防御体系来抵御攻击. 1.网站IP减少公 ...
- python 密码学编程 -- 2
接上一篇随笔 ******************************************************************** * quote : "http://i ...
- EXchange导出通讯录提取url纯文本
用outlook链接邮箱 文件-打开和导出--导出到文件--逗号分隔值--选择联系人--保存 保存为一个后缀为csv的文件 打开该文件 选中该列 用替换功能删掉()符号 用vba脚本删掉汉字 Sub ...
- ABP+AdminLTE+Bootstrap Table权限管理系统第七节--登录逻辑及abp封装的Javascript函数库
经过前几节,我们已经解决数据库,模型,DTO,控制器和注入等问题.那么再来看一下登录逻辑.这里算是前面几节的一个初次试水. 首先我们数据库已经有的相应的数据. 模型和DTO已经建好,所以我们直接在服务 ...