版权声明:本文为博主原创文章,未经允许,不得转载。
Linux中查看文本文件内容命令cat/tac/nl/more/less/head/tail/vi总结
1、cat命令:
head
概述
在Linux系统下,有很多命令可以查看文本文件的内容,如cat/tac/nl/more/less/head/tail等命令,当然还有vi/nano等文本编辑器。在这里,我只介绍其中自己常用的一部分命令和操作。
cat:从第一行开始显示全部的文本内容;
tac:从最后一行开始,显示全部分文本内容,与cat相反;
nl:显示文本时,可以输出行号;
more:按页显示文本内容;
less:与more差不多,也是按页显示文本内容,区别是less可以一行一行的回退,more回退只能一页一页回退;
head:从头开始显示文件指定的行数;
tail:显示文件指定的结尾的行数,但每一行的位置还是原文件中的位置,不会像tac那样与原文件相反。
vi: NB的Linux文本编辑器。
功能:1)显示整个文件。
head 命令可以将一段文本的开头一部分输出到标准输出。
例子与说明
示例: $ cat fileName
head命令既可以处理文本文件也可以处理标准输入。
cat
cat demo.txt
显示demo.txt文件全部内容 cat -b demo.txt
显示demo.txt文件全部内容,非空的行输出行号,空行会输出,但不标记行号 cat
-n demo.txt
显示demo.txt文件全部内容,所有行都输出行号
优点:简单
缺点:当文本文件内容多于一页内容时,只能显示出最后一页的内容,无法看到前面的内容。
2)把文件串连接后传到基本输出,如将几个文件合并为一个文件或输出到屏幕。
基本应用
tac
tac demo.txt
从最后一行开始,倒序输出demo.txt的内容。本人不常用。
示例: $ cat file1 file2 > file
处理文本文件:
nl
nl demo.txt
显示文件内容,顺便输出行号,默认情况下空行不记录行号 nl -b a demo.txt
b a #网赌十大信誉的平台,空行也输出行号 b t #默认设置 n ln ##行号最左方显示 n rn
##行号最右方显示,且不加0(然并卵,我的机器上依然显示在左边) n rz
##行号最右方显示,且加0(再次然并卵,但加了0了,如下图所示) w
##设置行号字段占用的位数
优点:貌似很灵活的样子
缺点:就查看下内容,输出个行号而已,搞那么复杂有卵用。。。
说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到另一个档案)
head input.txt
more
more demo.txt
按一下空格则往下翻一页 按一下Enter则往下翻一行 按一下B键往上翻一页
不能往上一行一行的翻回去了 :f 可以显示文件名和现在的行数 q退出more
cat参数详解:
当有多个文件输入时,head会顺序处理并输出:
less
less demo.txt
more命令的所有按键less都支持 ↑↓箭头可以实现一行一行的上下翻
PageDown/PageUp可以实现一页一页的上下翻
-n 或 –number 由 1 开始对所有输出的行数编号
head input1.txt input2.txt
head
head demo.txt
默认只显示文件的前10行文本内容 head -n 6 demo.txt
-n 6 参数指定显示文件的前6行 head -n -4 demo.txt
-n -4 负数表示除去文件结尾的4行,其他的从头开始的所有行都显示出来
-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
tail
tail demo.txt
默认只显示从文件最后一行开始的10行文本内容 tail -n 5 demo.txt
-n 5 参数指定显示文件的最后5行 tail -n -5 demo.txt
**-n -5**tail命令不支持负数,执行结果同-n 5
-s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
处理标准输入:
vi
vi命令是使用VIM文本编辑器打开文本,VIM编辑器目前本人也是刚开始学习,只记住了一些简单的命令:
vi demo.txt 进入Normal模式查看文本 i 进入Insert模式插入内容,编辑文本 nG
n代表行号,在Normal模式输入nG则定位到第n行 :set number
在Normal模式输入则显示文本行号,空行也会显示行号 ESC
退出Insert模式至Normal模式 :wq
在Normal模式下保存退出。w保存;q退出;可以单独使用
就知道那么多了。希望以后能熟练使用VIM编辑器。
概述
在Linux系统下,有很多命令可以查看文本文件的内容,如cat/tac/nl/more/less/…
-v 或 –show-nonprinting
ls | head
2、more命令:
当没有其他参数时,head默认输出前10行,当然,head有各种参数。
以百分比的形式查看日志。
3、less命令:
可选参数
跟more功能差不多,只不过less支持前后翻阅文件。
-n: 输出的行数
4、head命令:
例如,如果想输出前25行,下面三个命令是等价的:
功能:从文本文件的头部开始查看,head
命令用于查看一个文本文件的开头部分。
head -n25 input.txt
head -n 25 input.txt
head -25 input.txt
示例如下:
可以看出,-n后面有没有空格都可以,有几个空格都可以,甚至-n本身都可以省略。
head example.txt 显示文件 example.txt 的前十行内容;
-n 后面也可以跟负数,例如:
head -n 20 example.txt 显示文件 example.txt 的前二十行内容;
head -n -5 input.txt
head详解:
此命令表示输出input.txt除了后5行以外的全部内容。
-n 指定你想要显示文本多少行。
-n number
这个参数选项必须是十进制的整数,它将决定在文件中的位置,以行为单位。
-c: 输出的字节数
-c number
这个参数选项必须是十进制的整数,它将决定在文件中的位置,以字节为单位。
head -c 5 input.txt # 5 bytes
head -c -5b input.txt # 5*512
head -c5k input.txt # 5*1024
head -c 5m input.txt #5*1048576
5、tail命令:
-c
没有默认值,所以后面必须跟数值。可以是负数,表示输出除了后N个字节以外的内容。
功能:tail 命令用于显示文本文件的末尾几行。
示例如下:
tail
tail example.txt 显示文件 example.txt 的后十行内容;
将一段文本的结尾一部分输出到标准输出,也就是从某个节点位置开始输出。
tail -n 20 example.txt 显示文件 example.txt 的后二十行内容;
基本用法
tail -f example.txt 显示文件 example.txt
的后十行内容并在文件内容增加后,自动显示新增的文件内容。
tail的参数基本用法和head完全一样,在此不作赘述。
tail -n 50 -f example.txt 显示文件 example.txt
的后50行内容并在文件内容增加后,自动显示新增的文件内容。
只有一点需要注意,如果想表达从第N(比如25)行开始输出,要使用加号:
注意:
tail -n +25 input.txt
最后一条命令非常有用,尤其在监控日志文件时,可以在屏幕上一直显示新增的日志信息。
tail详解:
tail +5c input.txt #从第5个字节开始打印
-b Number 从 Number 变量表示的 512 字节块位置开始读取指定文件。
-c Number 从 Number 变量表示的字节位置开始读取指定文件。
-f 如果输入文件是常规文件或如果 File 参数指定 FIFO(先进先出),
那么 tail 命令不会在复制了输入文件的最后的指定单元后终止,而是继续
常见用法
从输入文件读取和复制额外的单元(当这些单元可用时)。如果没有指定 File
参数,
tail 有一个常见的用法:用来实时查看一个不断更新的log
file。例如后台有一个logfile.txt不断更新,我们可以用下面的命令将更新内容打印在屏幕上:
并且标准输入是管道,则会忽略 -f 标志。tail -f
命令可用于监视另一个进程正在写入的文件的增长。
tai -f logfile.txt
-k Number 从 Number 变量表示的 1KB 块位置开始读取指定文件。
-f: 循环读取
-m Number 从 Number
变量表示的多字节字符位置开始读取指定文件。使用该标志提供在单字节和双字节字符代码集环境中的一致结果。
-n Number 从首行或末行位置来读取指定文件,位置由 Number 变量的符号(+ 或
- 或无)表示,并通过行号 Number 进行位移。
-r 从文件末尾以逆序方式显示输出。-r
标志的缺省值是以逆序方式显示整个文件。如果文件大于 20,480
字节,那么-r标志只显示最后的 20,480 字节。 -r 标志只有
与 -n 标志一起时才有效。否则,就会将其忽略。