Linux常见文本处理命令
| 管道
将前一个命令的输出当做后一个命令的输入
cut 剪切内容
常用参数
-d :指定分隔符(delimiter)
-f : 与-d一起使用,指定打印出第几部分
-c : 按字符个数来分割
sort 排序
常用参数
-r:降序
-n:依照数值的大小排序(默认以第一个字符进行排序)
-u: 去重
-t : 指定分隔符
-k: 和-t连用,指定按照第几部分排序
uniq 去重
常用参数
-c : 去重并统计
wc 统计
常用参数
-l : 统计行数
-c: 统计字符数
-w: 统计单词个数
head 输出文件开头部分
-n : 输出文件前N行内容
默认情况下输出文件前10行内容
tail 从文件末尾开始输出
-n : 输出文件倒数N行内容
-f : 实时查看文件内容,比如实时监控access_log的日志输出
find 查找文件
常用参数
-name: 按照文件名字来查找
-size : 按照文件大小来查找
-mtime: 按照文件更改时间查找
-type: 指定文件类型查找
-maxdepth : 最多搜索几级目录
-exec: 找到之后执行某些操作
-a :与
-o : 或
grep过滤文件
常用参数
-v 过滤结果取反
-i 过滤条件不区分大小写
-E 扩展模式
-r 递归
正则表达式
sed
常用参数
- 关键字替换
sed 's/a/b/g' filename # 将全文中的关键字'a'替换成'b'
sed '1,10s/a/b/g' filename # 将1到10行的关键字'a'替换成'b'
sed -e 's/a/b/' -e 's/c/d/' filename # 进行两次替换,先将'a'替换成'b',再将'c'替换成'd'
sed -n '/a/p' filename # 将含有关键字'a'的行打印出来
sed '/a/d' filename # 将含有关键字'a'的行删掉
-i 参数:上述所有操作都是内存生效,如果想真正修改文件内容,可以在sed后添加-i参数
awk
常用方式
awk '{print $1}' access_log # 默认空格为分隔符,打印第一列
awk '{a[$1]++}END{for(i in a) print a[i],i}' access_log #找出访问量最大的IP
-F参数:指定分隔符
注:上述命令都是一些常用参数,而不是全部参数,大家要学会–help或者man