管道相关命令
主要有cut、sort、wc、uniq、tee、tr、split、awk、sed和grep
1,cut
根据条件从命令结果中提取对应内容
参数:
- -c : 按字符选取内容
- -d ‘分隔符’ :指定分割符
- -f n: 分割后显示内容的范围
范围:
n :显示第n项
n- :显示从第n项一直到行尾
n-m :显示从第n项到第m项
2,sort
可针对文本文件的内容,以行为单位来排序(默认按照字符串排序)
参数:
- -u :去掉重复的
- -n :按照数值大小排序
- -r :使次序颠倒
- -t :指定字段分割符
- -k :根据哪一列排序
3,wc
显示指定文件字节数,单词数,行数信息
参数:
- -c :显示字节数
- -w :显示单词数
- -l :显示行数
- 默认显示所有
4,uniq
用于检查及删除文本文件中重复出现的行,一般与sort命令结合使用
注意:去除重复行前需要使用sort进行排序
参数:
- -c :统计每行内容出现的次数
5,tee
通过tee可以将命令结果通过管道输出到多个文件中
6,tr
用于替换或删除文件中的字符
7,split
将大文件切分成若干个小文件
8,awk
通过awk实现模糊查询,按需提取字段,还可以进行判断和简单的运算等
参数:
- -f ‘,’ :使用指定字段分割
- $+数字 :获取第几段内容
- $0 :获取当前行内容
- NF :表示当前行共有多少个字段
- $NF : 代表最后一个字段
- $(NF-1) :代表倒数第二个字段
- NR :代表处理的是第几行
参数: - OFS=”字符“ :向外输出是的段分割字符串
常用函数: - toupper() : 字符转成大写
- tolower() : 字符转成小写
- length() : 返回字符长度
参数: - if($0~“aa”)print $0 : 如果这一行包含”aa“,就打印这一行内容
- if($1~“aa”)print $0 : 如果第一段包含”aa“,就打印这一行内容
- if($1==“lisi”)print $0 : 如果第一段等于”lisi“,就打印这一行内容
9,sed
可实现过滤和替换的功能
参数:
- p :打印
- $ :代表最后一行
- -n :仅显示处理后的结果
- -e :根据表达式进行处理
- -i :替换原有文件内容
- -r :识别正则
- i :目标前面插入内容
- a :目标后面追加内容
- = :打印当前行号
- I :忽略大小写
- d :删除指定内容
注:下饭文档,谨慎使用!