当前位置: > Linux命令 >

几个常用的文本处理shell 命令:find、grep、sort、uniq、sed、awk

时间:2019-05-05 17:48来源:linux.it.net.cn 作者:IT
find 文件查找
查找txt和pdf文件


find . \( -name "*.txt" -o -name "*.pdf" \) -print
查找所有字母开头的文件


find . -name "[a-a]*"
否定参数->查找所有非txt文本


find . ! -name "*.txt" -print
指定搜索深度->打印出当前目录的文件(深度为1)


find . -maxdepth 1 -type f
正则方式查找.txt和pdf


find . -regex  ".*\(\.txt|\.pdf\)$"
-iregex: 忽略大小写的正则
查找目录下属性为755的文件


find . -prem 755
查找所属主为root的文件


find -user root
寻找大于2k的文件


find . -type f -size +2k
找到文件后续动作

删除当前目录下所有的avi文件


find . -type f -name "*.avi" -delete
执行动作(强大的exec)


find . -type f -user root -exec chown root {} \; //将当前目录下的所有权变更为root
grep 文本搜索
在file文件中过滤掉字符串'str'所在的行


grep -v "str" file
在file文件中查找时间在2017:22:50~2017:22:59所在的行


grep -E "2017:22:5[0-9]" file
在file文件中查找不包括360的行


grep -E "^[^360]" file
在file文件中查找包括w和t的行


grep -E "w*t" file
在file文件中查找大于560小于893的行


grep -E "[5-8][6-9][0-3]"
在file文件中查找包含两个9的行


grep -E "9{2}" file
查找大于两个9的行


grep -E "9{2,}" file
查找file文件中的空行


grep -E "^$" file
查找包括?的行


grep "?" file
查找文件中以w开头的行


grep -E "^w" file
查找文件中不是以w开头的行


grep -E "^[^w]" file
awk 数据流处理工具
查找出日志文件中的每一列


awk '{print $0}' log.log
查找出文件中的第一列和第七列


awk '{print %$1 "\t"$7}' log.log
~匹配192.168.10.2的ip地址统计。!~为不匹配


cat file | awk '$0 !~ /192.168.10.2/' | grep 'php' |wc -|
sed 行定位
只打印第二行,不打印其它行的数据


sed -n '2'p file
从第一行到第九行的记录


sed -n '1,9'p file
打印匹配php的行


sed -n '/php/p file
打印从第九行到匹配php的之间所有行


sed -n '9,/php/'p file
把第一行和第二行全部删除(非文件删除)

sed '1,2'd file
Uniq行定位的使用
打印紧挨的重复行出现的次数


uniq -c file
只打印重复的行


uniq -d file
把apache网站的所有访问ip统计出来,并打印统计次数


awk '{print $1}' /var/log/httpd/access_log | sort | uniq -c
sort排序的使用
把文件喊字母的圣墟进行排序


sort file
把文件按照字母的降序进行排序


sort -r file
为进行分割后的第一列来排序


cat file | sort -t: -k1 -r

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容