1.grep(文件内查询)
-w :单词匹配
grep –w '1234' test.unl
#相当于
grep '/<123/>' a.txt #精确匹配123
grep '/<123' a.txt 可以匹配1234
grep '123\>' a.txt 可以匹配4123
-A :匹配行下面n行
-B :匹配行上面n行
-C:匹配行上下n行
-c:统计匹配的行数
grep -A2 'test' test.unl
-E:解释模式作为一个扩展的正则表达式
grep -E 'reg1|reg2' test.unl
grep -e 'reg1' -e 'reg2' test.unl
-e:或 见上文
-P:启用perl正则
grep -P "\d" test.unl
-o:只输出匹配的部分
echo -e "123d32" | grep -oP "\d+"
-H:显示文件名和匹配行
-h:只显示匹配行
-l:只显示包含匹配行的文件名
-L:只显示不包含匹配行的文件名
grep -H 'reg1' test.unl
-i:匹配忽略大小写
grep -i "a" test.unl
#作用类似
grep -e 'a' -e 'A' test.unl
-f:以第一个文件的每行依次为匹配条件筛选
grep –f reg.unl test.unl
2.find (查找文件)
-name:按照文件名查找
find ./ -name "*.unl"
-perm:按照权限查找
find . -perm 644
-user :按照用户查找
find . -user username -print
-group : 按照用户组查找
find . -group groupname -print
-mtime:按照更改时间查找
find . -mtime -5 -print # 更改时间5天内
find . -mtime +3 -print #更改时间3天前
-newer:查找更新时间比某文件早的
find . -newer test.unl
-type:按照文件类型查找(d:文件夹 f:文件 ..)
find . -type d
-size:按照文件大小查找(默认单位为块(512字节))
find . -size +1000000c -print #查找文件长度大于1 M字节
find . -size +10 -print #查找长度超过1 0块的文件
-maxdepth -mindepth :查找的层数
find . -maxdepth 1 #在当前目录查询,不进入子目录
-exec:匹配到一些文件后,对其进行操作
find . -type f -exec ls -al {} \; #{} 代表查找到的文件名 \; 代表 exec选项的结束
3.xargs (find的好基友,一般连用)
-n (几行合并)
seq 10 | xargs -n3
-I(取名)
find . -type f | xargs -I wx rm wx
4.sort
-数字
sort +1 test.unl #+1:按照第二列排序(第一列为0) -2 为忽略第三个域
sort +1.2 test.unl #按照第二列左边起第三个字符排序
-n:按照数值大小排序(默认为按照字符排序)
sort -n test.unl
-t:指定分隔符
sort -t"|" -k1 test.unl #按照第一列排序 (默认0开始 k选项 1开始)
-u :去重
sort -u test.unl
-r:排倒序
sort -r test.unl
-s :稳定排序
> cat test.unl
3 2
2 4
2 3
4 1
> sort +0 test.unl #第二列也默认排序
2 3
2 4
3 2
4 1
>sort -s -k1,1 test.unl #-s 和 -k 合用 -s稳定排序 -k指定排序的列 逗号(,)分隔开起始列和结束列
2 4
2 3
3 2
4 1