背景
平时一直都在用,但是一直没有认真仔细的总结过,在此记录下,有空继续补充
Find
在目录结构中搜索文件,并执行指定的操作。
1、按文件名查找
2、按文件特征查找
访问时间
find / -amin -10 #查找在系统中最后10分钟访问的文件(access time)
find / -atime -2 #查找在系统中最后48小时访问的文件
修改时间
find / -mmin -5 #查找在系统中最后5分钟里修改过的文件(modify time)
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
空
find / -empty #查找在系统中为空的文件或者文件夹
大小
所属用户
find / -user fred#查找在系统中属于fred这个用户的文件
所属用户组
find / -group cat #查找在系统中属于 group为cat的文件
3、混合查找
!
find /tmp ! -user panda #在/tmp目录中查找所有不属于panda用户的文件
-and(-a)
find /tmp -size +10000c -and -mtime +2 #在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件
-or(-o)
find / -user fred -or -user george #在/目录下查找用户是fred或者george的文件文件
Grep
grep 'test' d* #显示所有以d开头的文件中包含 test的行
grep 'test' aa bb cc #显示在aa,bb,cc文件中包含test的行
grep '[a-z]\{5\}' aa #显示所有包含每行字符串至少有5个连续小写字符的字符串的行
grep magic /usr/src #显示/usr/src目录下的文件(不含子目录)包含magic的行
grep -r magic /usr/src #显示/usr/src目录下的文件(包含子目录)包含magic的行
grep -w pattern files #只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
Sed
sed语法格式
sed [-hnV][-e<script>][-f<script文件>][文本文件]
参数说明:
-e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。
-f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
-h或--help 显示帮助。
-n或--quiet或--silent 仅显示script处理后的结果。
-V或--version 显示版本信息
Awk
awk语法格式
awk '{pattern + action}' {filenames}
调用awk的三种方式
1、命令行方式
2、shell脚本方式
3、将awk命令插入单独文件进行调用
入门语法
1、awk -F ' 分隔符 ' {pattern + action} (默认分隔符是空白或者tab)
2、awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/test"}
awk内置变量
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符
print和printf
awk中同时提供了print和printf两种打印输出的函数。
1、print函数的参数可以是变量、数值或者字符串。字符串必须用双引号引用,参数用逗号分隔。如果没有逗号,参数就串联在一起而无法区分。这里,逗号的作用与输出文件的分隔符的作用是一样的,只是后者是空格而已。
2、printf函数,其用法和c语言中printf基本相似,可以格式化字符串,输出复杂时,printf更加好用,代码更易懂。
awk编程
略
总结
有时候,平时用的很简单的东西,却没有清楚的认识,知其然不知其所以然。
未完待续
附:
参考资料: