sort命令
以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序
比较原则:
从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出
语法格式:
- sort [选项] 参数
- cat file | sort 选项
常用选项
- -f:忽略大小写,默认会大写字母排在前面
- -b:忽略每行前面的空格
- -n:按照数字进行排序
- -r:反向排序
- -u:等同uniq,表示相同的数据仅显示一行,去重
- -t:指定字段分隔符,默认使用tab键分隔
- -k:指定排序字段
- -o <输出文件>:将排序后的结果转存至指定文件
1. soft -f:忽略大小写,默认会大写字母排在前面
2. soft -b:忽略每行前面的空格
3. soft -u:等同uniq,表示相同的数据仅显示一行,去重
4. -t:指定字段分隔符,默认使用tab键分隔
-k:指定排序字段
6.-o <输出文件>:将排序后的结果转存至指定文件
unip命令
用于报告或者忽略文件中连续的重复行,常与sort命令结合使用
语法格式:
unip [选项] 参数
常用选项:
- -c:进行计数,并删除文件中重复出现的行
- -d:仅显示连续的重复行
- -u:仅显示出现一次的行
1.-c:进行计数,并删除文件中重复出现的行
2.-d:仅显示连续的重复行
3.-u:仅显示出现一次的行
tr命令:
常用来对来自标准输入的字符进行替换、压缩和删除
语法格式:
tr [选项] 参数
常用选项:
- -c:保留字符集1的字符,其他的字符(包括换行符\n)用字符集2替换
- -d:删除所有属于字符集1的字符
- -s:将重复出现的字符串压缩为一个字符,用字符集2替换字符集1
- -t:字符集2替换字符集1,不加选项结果相同
注:
- 字符集1:指定要转换或删除的原字符集,当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集,但执行删除操作时,不需要参数“字符集2”
- 字符集2:指定要转换成的目标字符集
1.不加选项
2.-c:保留字符集1的字符,其他的字符(包括换行符\n)用字符集2替换
3.-d:删除所有属于字符集1的字符
4.-s:将重复出现的字符串压缩为一个字符,用字符集2替换字符集1
5.t:字符集2替换字符集1,不加选项结果相同
cut命令
显示行中的指定部分,删除文件中指定字段
语法格式:
cut 参数
常用选项:
- -f:通过指定哪一个字段进行提取,cut命令使用“TAB”作为默认的字段分隔符
- -d:“TAB”是默认的分隔符,使用此选项可以更改为其他的分隔符
-f 和 -d分开使用不可以
split
linux下将一个大文件拆分成若干小文件
语法格式
split + 选项 + 参数+ 原始文件+拆分后文件名前缀
常用选项
- -l:以行数拆分
- -b:以大小拆分
paste
用于合并文件的列
语法格式
paste [-s] [-d<间隔字符>] 文件...
常用选项
- -d<间隔字符>:用指定的间隔字符取代制表符
- -s:把多行内容合并为一行进行显示
eval
命令字前加上eval时,shell会在执行命令之前扫描它两次。eval命令将首先会先扫描命令行进行所有的置换,然后再执行该命令适用于那些一次扫描无法实现其功能的变量,该命令对变量进行两次扫描。
实例1
实例2
正则表达式
通常用于判断语句中,用来检查某一字符是否满足某一格式
正则表达式的组成
由普通的字符和元字符组成
- 普通字符:包括大小写字母、数字、标点符号、及一些其他字符
- 元字符:指在正则表达式中具有特殊意义的专用字符,可以用来规定其前字符(位于元字符前面的字节或表达式)在目标对象中的出现模式
常见的元字符(支持工具:grep、egrep、sed、awk)
- \:转义字符,用于取消特殊符号的含义,例:!、$等
- ^:匹配字符串开始的位置,例:^#、^[a...z]等
- $ :匹配字符串结束的位置,例:word、^等
- .:匹配除\n外的任意字符,例:go.d、g..d等
- * :匹配前面子表达式0次或多次,例:goo* d、go.* d
- [list]:匹配list列表中的一个字母,例:[0-9]匹配任意一个数字
- [^list] :匹配任意非list列表中的一个字符,例:[^0-9]、[^a-z]匹配任意一个小写字符
- \ {n\ }:匹配当前的子表达式n次,例:go\ {2\ }d、‘[0-9]\ {2\ }’匹配两位数字
- \ {n,\ }:匹配前面的子表达式不少于n次,例:go\ {2,\ }d、‘[0-9]\ {2,\ }’匹配两位及两位以上的数字
- \ {n,m\ }:匹配前面的子表达式n到m次,例:go\ {2,3}d、‘[0-9]\ {2,3\ }’匹配两位到三位数
- \ w:匹配包括下划线的任意单词字符
- \ W:匹配任何非单词字符
- \ d:匹配一个数字字符
- \ D:匹配一个非数字字符
- \ s:空白符
- \S:非空白符
注意
- 正则表达式在表示时,需要加单引号或双引号
- grep和sed在使用大括号表示正则表达式时,需要加转义符\ 表示大括号
扩展
+:匹配前导字符或表达式1次以上,例:go+d,将匹配至少一个o
?:匹配前导字符或表达式0次或1次,例:go?d,将匹配gd或者god
():将括号中的字符串作为一个整体,例:g(oo)+d,将匹配oo整体1次以上
|:以或的方式匹配字符串,例:g(oo|la)d,将匹配good或者glad