Linux常用命令之文件处理

本篇分享一下文件处理的相关常用命令。

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
&#91;root@localhost ~]# more /var/log/messages      //分页查看

常用按键:

空格键查看下一页回车键查看下一行b键查看前一页q键退出查看页面/file查看包含file的内容

less命令——分页显示文件内容

less命令和more命令的功能相似,都是分页显示文件内容,但是less命令在交互界面有更灵活的操作

1
&#91;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:文本编辑器,后续会在单独篇章详细讲解

data-ad-format="auto" data-full-width-responsive="true">