本篇分享一下文件处理的相关常用命令。
cat命令——查看文件内容
语法:
cat 选项 文件
选项:
-n | 输出行号 |
-b | 输出行号,并忽略空白行,统计的是非空白行数 |
常用操作:
[root@localhost ~]# cat /etc/passwd //查看文件内容
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost ~]# cat >> /etc/fstab
> /dev/sdb /data xfs defaults 0 0
> EOF
[root@localhost ~]# cat /dev/null > file.txt //清空文件内容
more命令——分页显示文件内容
cat命令是查看所有内容,对于内容较长的文件无法一屏显示所有内容,所以就需要分页显示内容,more命令就有这种分页显示功能。
常用操作:
[root@localhost ~]# more /var/log/messages //分页查看
常用按键:
空格键 | 查看下一页 |
回车键 | 查看下一行 |
b键 | 查看前一页 |
q键 | 退出查看页面 |
/file | 查看包含file的内容 |
less命令——分页显示文件内容
less命令和more命令的功能相似,都是分页显示文件内容,但是less命令在交互界面有更灵活的操作
[root@localhost ~]# less /var/log/messages //分页查看
空格键 | 查看下一页 |
回车键 | 查看下一行 |
b键 | 查看前一页 |
q键 | 退出查看页面 |
/字符串 | 向下查看包含file的内容 |
?字符串 | 向上搜索内容 |
n | 向后查找下一个匹配的文本 |
g | 移动到第一行 |
G | 移动到最后一行 |
总结下more 和 less的区别:
less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示
less不必读整个文件,加载速度会比more更快
less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容
head命令——显示文件内容头部
默认显示文件的前10行。
常用操作:
[root@localhost ~]# head /etc/passwd //默认显示文件10行
[root@localhost ~]# head -n 20 /etc/passwd //显示文件的前20行
tail命令——显示文件内容尾部
默认显示文件最后10行。
选项:
-f | 实时输出文件变化后追加的数据 |
-n | 指定显示行数 |
常用操作
[root@localhost ~]# tail -n 20 /var/log/messages //显示文件的最后20行
[root@localhost ~]# tail -f /var/log/messages //动态追踪日志信息
cut命令——从文件中提取一段文字并输出
选项:
-c | 以字符为单位进行分割 |
-d | 自定义分隔符,默认以tab键为分隔符 |
-f | 指定显示哪个区域,常和-d使用 |
常用操作:
cut -c 2-10 test.txt //剪切每行2-10位置的字符
cut -d : -f 1 /etc/passwd //指定以:作为分割符,-f指定显示第一个区域
split命令——分割文件
选项:
-l | 指定分割后文件的最大行数 |
-b | |
-d | 以数字为后缀 |
常用操作:
split -l 10 test.txt new_ //每10行分割一次,分割的文件名以new_开头
split -l 10 -d test.txt new_ //参数-d使用数字后缀
split -b 500M -d test.txt new_ //每500M分割一次
paste命令——合并文件
-d :指定合并的分隔符,默认是TAB
sort命令——文件排序
选项:
-n | 依照数值大小进行排序 |
-r | 倒序排序 |
-t | 指定分隔符 |
-k | 按指定区间排序 |
常用操作:
sort -n test.txt //按照数值大小进行排序
sort -nr test.txt //sort默认按照从小到大排序,使用-r选项就可以实现从大到小
sort -t " " -k2 test.txt //以空格为分隔符,按照第二列进行排序
uniq命令——去除重复行
选项:
-c | 去除重复行,并计算每行出现的次数 |
常用操作:
uniq -c test.txt
sort -n test.txt | uniq -c //结合sort使用,先排序后去重
wc命令——统计文件的行数、单词或字节数
选项:
-l | 统计行数 |
-c | 统计字节数 |
-w | 统计单词数 |
-L | 打印最长行的长度 |
常用操作:
[root@localhost ~]# wc /etc/passwd //不加任何参数会打印出行数,单词数据,字节数等三个参数
20 28 901 /etc/passwd
[root@localhost ~]# cat /var/log/messages |wc -l //通过管道符来统计文件的行数
tee命令——多重定向
用于将数据重定向到文件,同时提供一份重定向数据的副本输出到屏幕上
常用操作:
ls | tee -a ls.txt //将输出内容记录到ls.txt文件中,并输出到屏幕上
iconv命令——转换文件的编码格式
语法:
iconv 选项 原编码 新编码 输入文件
选项
-f 编码A | 从编码A转换 |
-t 编码B | 转变成编码B |
-l | 显示系统支持的编码 |
-o | 将输出输入到 |
常用操作:
iconv -f gbk -t utf-8 test.txt # 将test.txt文档的编码从gbk改为utf-8
diff:比较两个文件的不同
vimdiff:可视化比较工具
vim:文本编辑器,后续会在单独篇章详细讲解