前言
一个文件总要看看它的内容是什么,这就是读取文件内容,在类Linux系统中,有很多命令可以读取文件的内容,常用的有cat、head、tail、less、more等等,每个命令有着不同的特点,多数情况下我们要依据文件的内容多少来决定使用哪个命令更合适,接下来一起来了解一下吧,比如文件只有10行文本,那么你用哪个命令都行,假设有1万行文本,就考虑用哪个命令更合适了,学完这篇文章,你会知道该用哪个命令更适合!本篇文章会介绍3个主要命令:他们是cat、head、tail。
cat
cat命令,因为与猫的单词同名,所以这个命令非常好记忆。也是日常使用中读取文件内容的首选命令,不过这个命令与猫没有任何关系,先让我们看看GPT对它的介绍(我精简了一部分内容,留下了精华)
上文所知,cat命令常用的场景就是4个,当然第1个场景最常用,我就不多说了,主要说一个合并文件内容的技巧:假设相似的文本文件特别多,可以巧妙利用文件名替换功能,就是*,bash解释器看见*之后,会先进行文件名解析,多个文件名会自动使用空格字符隔开
命令包括*,文件名扩展功能:
cat movie.mpeg.0*>movie.mpeg
等同于
cat movie.mpeg.001 movie.mpeg.002 movie.mpeg.003 > movide.mpeg
小总结:cat命令常用于查看较短文件的内容,几百行以内的文件内容。它的合并功能可以用于文本文件或者二进制文件
head
如果有个文件内容有几千、甚至几万行,你只想看前面几行甚至几十行的内容,使用cat的话你就要被刷屏了,使用head就能看见前面的几行内容,老规矩,看看GPT的解释(我稍微精简了一点,留下的还是精华)
综上所述,head命令可以用来显示文件前几行内容,-n参数可以指定要显示几行,比如
默认显示前10行
head xxx.txt
指定显示5行
head -n 5 xxx.txt
指定显示100行
head -n 100 xxx.txt
读取文件内容的命令,除了支持文件、一般都会支持标准输入,这时候我们利用管道符,就可以将前1个命令的标准输出,作为后一个命令的标准输入,比如,只提取ls命令的标准输出的前3行
ls -l | head -n 3
小总结:介绍head命令的时候,提到了管道,即|,我会专门写一篇管道的介绍,以及管道的常用方式!
tail
一个超大文件,有几万行,可是你只想看文件末尾的内容,这时候用tail命令即可,gpt的解答非常到位(有删改)
tail命令用来查看日志文件实时内容的功能特别有用:tail -f file.txt,它可以实时显示文件的新增内容,日志文件常常都会被程序一直写入,所以实时更新非常有勇
其他命令
less、more、vi、nano、等等,读取文件内容的命令有很多,前文提到的cat、head、tail,能满足你绝大多数的场景了
总结
我们需要根据文件内容的长度选择适合的命令:
内容很短:cat就够了
内容很长:head可以读取前几行、tail可以读取后几行,非要读全文的话,也可以使用less、more命令,不过这篇没有提及、甚至使用vi、nano这样的文本编辑器程序,也能看见文件的全部内容
需要实时更新文件内容:tail -f xxx.txt,这个功能非常用