文件处理命令
一、grep
格式
grep [选项]… 查找条件 目标文件
常用选项 | 含义 |
---|---|
-m+数字 | 匹配几次后停止 |
-v | 取反 |
-i | 忽略字符大小写(可有可无) |
-n | 显示匹配的行号 |
-c | 统计匹配的行数 |
-o | 仅显示匹配到的字符串 |
-A | 显示匹配到的行及其后几行 |
-B | 显示匹配到的行及其前几行 |
-C | 显示匹配到的行及其前后各几行 |
-e | 实现多个选项间的逻辑或关系 |
-w | 匹配整个单词 |
-E | 使用扩展正则 |
-f | 处理两个文件相同内容 把第一个文件作为匹配条件 |
-r | 递归目录,但不处理软链接,筛选目录下的所有文件 |
-R | 递归目录,但处理软链接 |
二、sort
以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序
格式
sort 选项 参数
cat file | sort 选项
常用选项 | 含义 |
---|---|
-f | 忽略大小写,默认情况大写字母排在前面 |
-b | 忽略每行前面的空格 |
-n | 按照数字进行排序,正向排序(由大到小) |
-r | 反向排序 |
-u | 等同uniq,表示相同的数据仅显示一行,去重 |
-o <输出文件> | 将排序后的结果转存至指定文件 |
-t | 指定字段分隔符,默认使用tab键分隔 |
-k | 指定排序字段 |
sort -u test.txt ---重复的数据只展示一次,相当于去重
cat /etc/passwd | sort -o test.txt ---把整个passwd的文件,传给test.txt
cat -n /etc/passwd | sort -n -o test.txt ---按照原来的文件的顺序传给test。txt
三、uniq
快捷去重,uniq命令用于报告或者忽略文件中连续的重复行,常与sort命令结合使用
格式
uniq [选项] 参数
cat 文件| uniq 选项
常用选项 | 含义 |
---|---|
-c | 统计连续重复的行的次数,并且合并重复的行 |
-u | 显示仅出现一次的行(包括不连续的重复行) |
-d | 仅显示重复出现的行(必须是连续的重复行) |
四、tr
常用于对来自标准输入的字符进行替换、压缩和删除
格式
tr 选项 参数
常用选项 | 含义 |
---|---|
-c | 保留字符集1的字符,其他的字符(包括换行符\n)用字符集2替换 |
-d | 删除所有属于字符集1的字符 |
-s | 将重复出现的字符串压缩为一个字符串,用字符集2 替换 字符集1 |
- 字符集1为指定要转换或删除的原字符集
- 字符集2为指定要转换成的目标字符集
五、cut
快速裁剪
格式
cut [选项] 参数
cat file | cut [选项]
常用选项 | 含义 |
---|---|
-d | 指定分隔符(默认分隔符为Tab) |
-f | 按字段进行截取,指定第n个字段 |
-b | 以字节为单位进行截取 |
-c | 以字符为单位进行截取 |
–complement | 排除所指定的字段 |
–output-delimiter | 更改输出内容的分隔符 |
六、split
split命令用于在Linux下将大文件拆分为若干小文件
格式
split 选项 参数 原始文件 拆分后文件名前缀
常用选项 | 含义 |
---|---|
-l | 指定行数 |
-b | 指定文件的大小 |
七、paste
文件合并,按照字段来进行文件的合并
格式
paste [选项] 文件1 文件2
常用选项 | 含义 |
---|---|
-d | 用于指定文件的分隔符(默认情况下为制表符"\n") |
-s | 将列和行的内容进行互相交换 |
八、面试题
8.1 paste a b和cat a b 之间的区别
paste是左右合并,cat是上下合并
8.2 统计当前主机的连接状态
[root@localhost ~]# ss -nta | grep -v '^State' |cut -d " " -f 1| sort | uniq -c
1 ESTAB
12 LISTEN
8.3 统计当前连接主机数
[root@localhost ~]# ss -nt | tr -s " "|cut -d " " -f 5 | sort -n | uniq -c
1 Address:Port
1 192.168.147.1:58106