1、正则表达式
元字符:
^:只匹配行首,如^d匹配drwxr-x--x
$:只匹配行尾,如trouble$:匹配以trouble结尾的所有字符;^$:匹配空行
*:匹配0个或多个
[]:匹配字符或字符序列,中间可以使用'
-','
,'来进行分割,如[1-5]匹配12345, [0-9]匹配0到9, [a-z],[A-Za-z],[A-Za-z0-9]等
\:屏蔽元字符的特殊含义,如
',
",
||,
^,
*,
+等特殊字符
.:只匹配任意单个字符,如...x..x..x, 匹配drwxr-x--x
pattern\{n\}:用来匹配pattern出现的次数,n为次数
pattern\{n,\}:含义同上,但至少匹配n次
pattern\{n,m\}:含义同上,但pattern出现的次数在n与m之间
2、find
find path -options [-print -exec -ok]
-name,如find ./ -name "[A-Z]*" -print
-perm,如find . -perm 755 -print
-user,如find `pwd` -user root -print或者find `pwd` -user "root" -print
-group,如find ./ -group root -print
-mtime -n +n, 如改变时间在5天以内的
find /var/ -mtime -5 -print; 改变时间在3天以前的文件
find /var/ -mtime +3 -print
-atime
-ctime
-size n[c]:查找文件长度为n块的文件,带有c时表示文件长度以字节计, 如大于10M的文件:
find . -size +10000000c -print
-nogroup
-nouser:find `pwd` -nouser -print
-newer file1 ! -newer file2:查找比file1新但比file2旧的文件, 如
find `pwd` -newer "spctab.lis" ! -newer "sp_6_7.lst" -print
-type:查找某一类型的文件,b:块文件,d:目录, c:字符设备文件,p:管道文件,l:符号链接文件,f:普通文件
如:find /etc/ -type d -print:查找/etc目录下的文件夹有哪些
-exec或ok来执行shell命令:如find /tmp/ -type f
-exec ls -l {} \;
find /var/log -name "*.log" -mtime +5 -exec rm {} \;
xargs:由于当大量的内容传递给exec时,存在溢出问题,所以建议在能找到文件时使用xargs命令
find ./ -perm -7 -print | xargs chmod o-w
-depth:先匹配所有文件,再在子目录中查找
man find
3、grep
-c:只输出匹配行的计数
查看文件abc中包含“
安装”字符的行数有多少
[root@oracle11g ab]# grep -c "安装" abc
751
751
-i:不区分大小写
-h:查询多文件时不显示文件名
-H:显示文件名
-l:查询多文件时只输出匹配字符的文件名
-n:显示匹配行及行号
[root@oracle11g ab]# grep -n "scim-tables-0.5.6-7.i386" abc
742:安装 scim-tables-0.5.6-7.i386
742:安装 scim-tables-0.5.6-7.i386
-s:不显示不存在或无匹配文本的错误信息
-V:显示不包含匹配文本的所有行
4、awk
5、sed
6、合并与分割(sort,uniq,join,cut, paste, split)
本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/274950,如需转载请自行联系原作者