本篇分享一下文件处理的相关常用命令。
data-ad-format="fluid" data-ad-layout-key="-7k+ex-4a-9w+4a">cat命令——查看文件内容
语法:
1 | cat 选项 文件 |
选项:
-n 输出行号-b输出行号,并忽略空白行,统计的是非空白行数
常用操作:
[root@localhost ~]# cat /etc/passwd //查看文件内容root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologin[root@localhost ~]# cat >> /etc/fstab << EOF //追加内容到文件尾部> /dev/sdb /data xfs defaults 0 0> EOF[root@localhost ~]# cat /dev/null > file.txt //清空文件内容
more命令——分页显示文件内容
cat命令是查看所有内容,对于内容较长的文件无法一屏显示所有内容,所以就需要分页显示内容,more命令就有这种分页显示功能。
常用操作:
1 | [root@localhost ~]# more /var/log/messages //分页查看 |
常用按键:
空格键查看下一页回车键查看下一行b键查看前一页q键退出查看页面/file查看包含file的内容
less命令——分页显示文件内容
less命令和more命令的功能相似,都是分页显示文件内容,但是less命令在交互界面有更灵活的操作
1 | [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命令——多重定向
用于将数据重定向到文件,同时提供一份重定向数据的副本输出到屏幕上
常用操作:
1 | ls | tee -a ls.txt //将输出内容记录到ls.txt文件中,并输出到屏幕上 |
iconv命令——转换文件的编码格式
语法:
1 | iconv 选项 原编码 新编码 输入文件 |
选项
-f 编码A从编码A转换-t 编码B转变成编码B-l显示系统支持的编码-o将输出输入到
常用操作:
1 | iconv -f gbk -t utf-8 test.txt # 将test.txt文档的编码从gbk改为utf-8 |
diff:比较两个文件的不同
vimdiff:VIM可视化比较工具
vim:文本编辑器,后续会在单独篇章详细讲解