linux: cat/tac、more/less、head/tail

环境:

  • centos7.6
  • ubuntu21.10

这几个命令都有查看linux文本文件内容的功能,但它们的侧重点又不相同。

  • cat:将文件内容全部输出到终端,并滚屏到最后;
  • more:分屏显示文本内容
  • less:也是分屏显示文本内容
  • head:显示文件的头部几行
  • tail:显示文件的末尾几行

下面看常见用法即可:

1. 显示文本的全部内容

1.1 使用 cat .bashrc

在这里插入图片描述

1.2 使用 cat -n .bashrc

如果,我们想显示行号怎么办?加个 -n 集合即可:
在这里插入图片描述

1.3 使用 cat -nE .bashrc

如果,我们想清晰的观察行结尾怎么办(防止行结尾有隐藏空格观察不到)?
添加 -E即可,这将会在行结尾添加$显示:

在这里插入图片描述

1.3 使用 nl .bashrc

nl 命令也可以来显示行号,并且默认不对空行编号,如下:
在这里插入图片描述
当然,也可以强制对空行编号,加个 -b a 即可:
在这里插入图片描述

另外,cat命令也可以指定不对空行编号,示例: cat -b .bashrc

2. 分屏显示文本内容

当文件小的时候,我们使用 catnl 命令没问题,但文件多的时候,由于屏幕直接滚动到最后,不利于从上到下阅读,如:
在这里插入图片描述
这个时候,我们就使用 more 命令:

2.1 使用 more test.i 分屏显示文件内容

在这里插入图片描述
在查看完成后,按 q 键退出即可。

那么,有办法显示行号吗?
并不能 (⊙o⊙)…(⊙o⊙)…

另外,我们需要知道在使用more查看文件时,enter 滚动下一行,空格 滚动下一屏。只需要知道这么多就行了。

2.2 使用 less test.i 分屏显示文件内容

在这里插入图片描述
在查看完成后,按 q键退出。

可以看到,less的基本用法和more差不多,但也有几点明显易操作的地方,比如:可以在查看less屏幕时,使用 上下 箭头来回翻动,虽然more也可以,但不如箭头方便。

那么,有办法显示行号吗?
有的,加-N即可:
在这里插入图片描述
那么,有办法在屏幕下方显示百分比吗?
有的,加 -m即可:
在这里插入图片描述

3. 显示文件的头部几行或几个字节

3.1 显示文件前几行

有的时候,文件本身很大,而我们也只想看文件前几行,怎么办?
使用 head test.i
在这里插入图片描述
默认显示前10行,如果我们想多几行或少几行怎么办?
使用 head -3 test.i
在这里插入图片描述
如果想显示行号怎么办?

这种需求没见过,一般用 head 也就是看前几行而已,如果想显示行号,那么请换用 less/more/cat/nl。

3.1 显示文件前几个字节

那么,如何显示前几个字节呢?这对于整个文本就一行的内容(json紧凑输出的)很有用:
在这里插入图片描述

4. 显示文件的尾部几行或几个字符

4.1 显示文件末尾几行

有的时候,我们想看文件的末尾几行,怎么办?
使用 tail test.i
在这里插入图片描述
tail 默认也是显示10行,如果想多几行或少几行,使用tail -3 test.i
在这里插入图片描述

4.2 显示文件末尾几个字节

和 head 类似,如下:
在这里插入图片描述

4.3 监视文件变化

如果我们想监视日志文件,可以使用 tail -f demo.log在这里插入图片描述

但是,如果文件一开始不存在的话,那么我们用 tail -f demo.log 将会报错,这个时候,我们可以使用 tail -F demo.log
在这里插入图片描述

5. 将文件内容按行反序显示(tac)

命令 tac 就是 cat的倒写,简单看下用法:
在这里插入图片描述

6. cat的其他用法

6.1 合并多个文件(cat demo.txt demo2.txt > demo3.txt)

我们知道 > 是将标准输出写入到其他文件;>>是将标准输出追加到其他文件,
那么,我们可以结合cat进行文件的合并,如下示例:
在这里插入图片描述

6.2 非交互式追加内容到文件(cat >> demo.txt <<eol)

一般我们要改写文件内容使用vim,但如果我们只想在文件末尾追加几行,有没有简单的方法呢?
如下:
在这里插入图片描述

6.3 清空文件内容(cat /dev/null > demo.txt)

如果我们想清空文件内容,我们可以使用:echo -n "" > demo.txt,如:
在这里插入图片描述

使用 echo清空文件的时候,记得添加 -n参数,否则它会在结尾添加换行符\n,如:
在这里插入图片描述

那么,我们能否通过cat命令实现清空的效果呢?
使用 cat /dev/null >demo.txt 即可:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u010476739/article/details/127177681