head和tail命令使用

引子

突然有个问题需要解决,去掉首行。咋整?

head展示最前面的行

tail展示最后的行

awk 'NR>1'可以

sed '1d'也可以

但是,就想用head或者tail,咋整?对这俩命令不太熟悉。希望看到最后,你将会彻底掌握head和tail:

head 命令详解

head 命令用于显示文件的开头部分。

基本语法

复制代码
head [选项] [文件]

常用选项

  • -n-:显示文件的前 N 行

  • -c:显示文件的前 N 个字节

  • -q:不显示文件名(静默模式)

  • -v:总是显示文件名

tail 命令详解

tail 命令用于显示文件的末尾部分。

基本语法

复制代码
tail [选项] [文件]

常用选项

  • -n-:显示文件的最后 N 行

  • -c:显示文件的最后 N 个字节

  • -f--follow:实时追踪文件变化(常用于日志监控)

  • -F :同 -f,但在文件被轮转或删除后重新尝试打开

  • -q:不显示文件名

  • -v:总是显示文件名

这些参数很常规啊~~都是我们之前常用的~~学了个寂寞!!!

高级用法:显示文件的特定范围

从第N行到文件末尾

bash 复制代码
# 从第11行显示到文件末尾(跳过前10行)
tail -n +11 filename.txt

# 从第6行显示到文件末尾(跳过前5行)
tail -n +6 filename.txt

显示第N行到第M行

bash 复制代码
# 显示第5行到第10行
head -n 10 filename.txt | tail -n +5

# 或者使用sed
sed -n '5,10p' filename.txt

果然,任何功法都得学到高级,才能解决更高级的问题。

答案就藏在了tail的-n选项指定的参数:+N就是从第N行展示到最后一行。

既然tail -n +N 代表从+N行到最后一行,tail -n N代表最后N行。那么,head -n N代表top N,head -n -N呢?

答案: 从倒数第N行到第一行。

head命令实验:

~]# head -n 3 test-line.txt

line1

line2

line3

~]# head -n +3 test-line.txt

line1

line2

line3

~]# head -n -3 test-line.txt

line1

line2

line3

line4

line5

line6

line7

tail命令实验:

~]# tail -n 3 test-line.txt

line8

line9

line10

~]# tail -n -3 test-line.txt

line8

line9

line10

~]# tail -n +3 test-line.txt

line3

line4

line5

line6

line7

line8

line9

line10

性能比较

对于大文件:

  • tail -n +2:性能最好,直接定位到第2行开始读取

  • sed '1d':性能较好,流式处理

  • awk 'NR>1':性能较好,流式处理

相关推荐
weixin_4365250714 小时前
Linux 终端下的 My Sql 常用操作指南(替代 Navicat)
linux·运维·服务器
上海蓝色星球21 小时前
迈向智慧电网新纪元:上海蓝色星球数字孪生变电主子站系统
运维·数据库
南棱笑笑生21 小时前
20251217给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-5.10】后调通ov5645【只能预览】
linux·c语言·开发语言·rockchip
爬山算法1 天前
Netty(10)Netty的粘包和拆包问题是什么?如何解决它们?
服务器·网络·tcp/ip
Sleepy MargulisItG1 天前
【Linux网络编程】应用层协议:HTTP协议
linux·服务器·网络·http
logic_51 天前
静态路由配置
运维·服务器·网络
G31135422731 天前
Linux 内核设计中的核心思想与架构原则
linux·架构·php
zhuzewennamoamtf1 天前
Linux内核platform抽象、数据结构、内核匹配机制
linux·运维·数据结构
门思科技1 天前
企业级 LoRaWAN 网关远程运维方案对比:VPN 与 NPS FRP 的技术与安全差异分析
运维·网络·安全
云和数据.ChenGuang1 天前
Deepseek 持续迭代的模型
运维·运维技术·数据库运维工程师·运维教程