cat,tac,nl,more,less,head,tail,od,touch-读书笔记(五)

本文介绍了Linux系统中的多个文本处理命令,如cat(查看文件内容)、tac(反向列式)、nl(添加行号打印)、more(逐页翻动)、less(更灵活的翻页浏览)、head(取前面几行)、tail(取后面几行)、od(二进制文件查看)以及touch(修改文件时间或创建新文件)。
摘要由CSDN通过智能技术生成

文件内容查阅

cat 由第一行开始显示文件内容

tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!

nl 显示的时候,顺道输出行号!

more 一页一页的显示文件内容

less 与 more 类似,但是比 more 更好的是,他可以往前翻页!

head 只看头几行

tail 只看尾巴几行

od 以二进制的方式读取文件内容!


cat 查看文件内容

在Linux系统中,cat命令用于以文本格式显示文件的内容。

cat命令的参数使用:

  • -n:显示行号。
  • -b:显示行号,但对于空白行不加以编号。
  • -s:将多个连续空行压缩成一个空行。

例子1:

cat file.txt

这个命令会将文件file.txt的内容显示在终端上。

例子2:

cat -n file.txt

这个命令会将文件file.txt的内容显示在终端上,并在每一行前面加上行号。


tac 反向列式

命令名称: tac

作用说明: 反向显示文件内容,从最后一行开始逐行显示。

参数使用:

  • -b, --before: 在每行之前添加指定的字符串。
  • -r, --regex: 使用正则表达式而不是字符串进行匹配。
  • -s, --separator: 指定列与列之间的分隔符,默认为制表符。
  • -v, --version: 显示命令的版本信息。

示例1:

命令: tac file.txt

作用: 逐行反向显示文件file.txt的内容。

示例2:

命令: tac -b "Line " file.txt

作用: 在每行之前添加字符串"Line ",然后反向显示文件file.txt的内容。


nl 添加行号打印

在Linux系统中,nl命令用于给文件添加行号,并将添加了行号的文件输出到标准输出或指定文件。

nl命令常用参数:

  • -b:指定行号的方式,有a、t和n三种方式。a代表行号不为空行时就行数,t代表行号不为空行时就行数,n代表行号永远不会为空行。
  • -n:设置行号的起始值,默认为1。
  • -w:设置行号的位数,不足位数时使用0填充。

两个例子:

  1. 给文件file.txt添加行号,并输出到标准输出:

nl file.txt

  1. 给文件file.txt添加行号,起始值为10,输出到newfile.txt:

nl -n 10 file.txt > newfile.txt

nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样,nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能呢。


more 一页一页翻动

more命令用于逐页查看文件的内容,可用于打开文本文件,按页显示文件内容,支持上下翻页、搜索等功能。它在处理大型文件时比cat命令更加方便,因为可以分批加载文件内容,避免一次性加载整个文件。

more命令的常用参数如下:

  • num:指定每次显示的行数,默认为10行。
  • +num:指定从文件的第num行开始显示。
  • /pattern:向下搜索文件中包含指定模式(pattern)的文本。
  • -c:显示内容时进行颜色区分。
  • -p:通过清屏再显示来避免屏幕闪烁。
  • -s:将连续多个空行合并为一个空行。
  • -u:不使用下划线来标记反向文本。

实例1:显示文件的前20行

more -20 file.txt

实例2:显示文件的内容,并且高亮显示匹配到的关键词

more -c -p /pattern file.txt

loss 一页一页翻

less 的用法比起 more 又更加的有弹性,怎么说呢?在 more 的时候,我们并没有办法向前面翻只能往后面看,但若使用了 less 时,呵呵!就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,你瞧,是不是更容易使用来观看一个文件的内容了呢!

head 取前面几行

在Linux系统中,head命令用于显示文件的开头部分,默认显示文件的前10行内容。可以通过参数来指定显示的行数或者字节数。

常用参数说明:

  • -n :显示文件的前几行,数字代表行数。
  • -c [b|k|M]:显示文件的前几个字节,数字可以后跟b(字节,默认)、k(千字节)或M(兆字节)。

例子1:显示文件的前5行内容

head -n 5 filename.txt

例子2:显示文件的前100个字节

head -c 100b filename.txt

tail 取后面几行

命令名称:tail

作用说明:tail命令用于显示文件的末尾内容,默认显示文件末尾的10行内容。

参数使用:

  • -n:指定显示文件末尾的行数,为具体的行数。
  • -f:实时监控文件的新增内容,当文件有新内容追加时,会自动显示新内容。

示例1:显示文件末尾的20行内容

命令:tail -n20 filename.txt

说明:此命令将显示文件filename.txt末尾的20行内容。

示例2:实时监控文件的新增内容

命令:tail -f filename.txt

说明:此命令会实时监控文件filename.txt的新增内容,当文件有新内容追加时,会自动显示新内容。

例题:假如我想要显示 /etc/man_db.conf 的第 11 到第 20 行呢?

这个应该不算难,想一想,在第 11 到第 20 行,那么我取前 20 行,再取后十行,所以结果就是:“ head -n20 /etc/man_db.conf | tail -n 10 ”,这样就可以得到第 11 到第 20 行之间的内容了!这两个指令中间有个管线(|)的符号存在,这个管线的意思是:“前面的指令所输出的讯息,请通过管线交由后续的指令继续使用”的意思。所以, head -n 20 /etc/man_db.conf 会将文件内的 20 行取出来,但不输出到屏幕上,而是转交给后续的 tail 指令继续处理。因此 tail “不需要接文件名”,因为 tail 所需要的数据是来自于 head 处理后的结果!

od 非纯文本文件

touch 修改文件时间或创建新文件

我们在ls 这个指令的介绍时,有稍微提到每个文件在linux下面都会记录许多的时间参数,其实是有三个主要的变动时间,那么三个时间的意义是什么呢?

modification time (mtime):当该文件的“内容数据”变更时,就会更新这个时间!内容数据指的是文件的内容,而不是文件的属性或权限喔!

status time (ctime):当该文件的“状态(status)”改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间啊。

access time (atime):当“该文件的内容被取用”时,就会更新这个读取时间(access)。举例来说,我们使用 cat 去读取/etc/man_db.conf ,就会更新该文件的 atime 了。这是个挺有趣的现象,举例来说,我们来看一看你自己的 /etc/man_db.conf 这个文件的时间吧!

在Linux系统中,touch命令用于更改文件的访问和修改时间,如果文件不存在则创建一个空文件。

touch命令常用的参数包括:

  • -a:只更改访问时间。
  • -c:不创建文件,如果文件不存在则忽略操作。
  • -d:使用指定的日期和时间而不是当前的时间。
  • -m:只更改修改时间。
  • -r:使用指定文件的时间戳。
  • -t:使用指定的日期和时间 戳。

例1:创建一个空文件

touch file.txt

该命令将在当前目录下创建一个名为file.txt的空文件。

例2:更改文件的访问和修改时间

touch -m -a -r source.txt target.txt

该命令将把source.txt文件的访问和修改时间赋值给target.txt文件。

  • 35
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值