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

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

 

posted @   温柔的风  阅读(4139)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示