在shell程序里如何从文件中获取第n行

news2024/9/22 1:07:52

问题:

有没有一种“规范”的方式来做到这一点?我一直在使用 head -n | tail -1,它可以做到这一点,但我一直想知道是否有一个Bash工具,专门从文件中提取一行(或一段行)。

所谓“规范”,我指的是一个主要功能就是这样做的程序。


回答:

有一个可供测试的文件,内容如下:

使用 sed 命令,要打印第 20 行,可写为

sed -n '20'p file.txt
sed -n '20p' file.txt

测试截图如下:

要打印第 8 到第 12 行,则可用命令

sed -n '8,12'p file.txt

如果要打印第8、9行和第12行,可用命令

sed -n '8p;9p;12p' file.txt

对于行数特大的文件,为了提高处理速度,可采用类似如下命令

sed '5000000q;d' file.txt
tail -n+5000000 file.txt | head -1

需要关注处理性能的伙伴可以在上述命令前加上 time 再对大文件进行测试对比。

其他可实现相同效果的命令工具还有 cut, awk, perl 等:

cut -f23 -d$'\n' file.txt
awk 'NR == 23 {print; exit}' file.txt
perl -wnl -e '$.== 23 && print && exit;' file.tx


参考:

  • stackoverflow question 6022384
  • man sed
  • man tail
  • man cut
  • man awk

相关阅读:

  • 带有-i选项的sed命令在Linux上执行成功,但在MacOS上失败了
  • 为什么我不能在脚本中使用“cd“来更改目录
  • 2>&1是什么意思
  • 如何使用bash脚本并行运行多个程序
  • 为什么要使用xargs命令
  • xargs命令用法实例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1666306.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML五彩缤纷的爱心

写在前面 小编准备了一个五彩缤纷的爱心,送给各位小美女们~ 在桌面创建一个.txt文本文件,把代码复制进去,将后缀.txt改为.html,然后就可以双击运行啦! HTML简介 HTML(超文本标记语言)是一种…

Stable Diffusion是什么?

目录 一、Stable Diffusion是什么? 二、Stable Diffusion的基本原理 三、Stable Diffusion有哪些运用领域? 一、Stable Diffusion是什么? Stable Diffusion是一个先进的人工智能图像生成模型,它能够根据文本描述创造出高质量的图…

VMware安装centos7教程

文章目录 1、centos7的ios镜像下载2、CentOS7安装3、Centos配置 其他教程: 1、VMware Workstation 16 Pro安装教程 2、VMwarePro16安装Ubuntu16.04图文教程 1、centos7的ios镜像下载 官网:https://vault.centos.org/ 阿里云:https://develo…

Idea入门:一分钟创建一个Java工程

一,新建一个Java工程 1,启动Idea后,选择 [New Project] 2,完善工程信息 填写工程名称,根据实际用途取有意义的英文名称选择Java语言,可以看到还支持Kotlin、Javascript等语言选择包管理和项目构建工具Mav…

新闻资讯微信小程序开发后端+php【附源码,文档说明】

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…

2024最新版JavaScript逆向爬虫教程-------基础篇之无限debugger的原理与绕过

目录 一、无限debugger的原理与绕过1.1 案例介绍1.2 实现原理1.3 绕过debugger方法1.3.1 禁用所有断点1.3.2 禁用局部断点1.3.3 替换文件1.3.4 函数置空与hook 二、补充2.1 改写JavaScript文件2.2 浏览器开发者工具中出现的VM开头的JS文件是什么? 三、实战 一、无限…

Java构造方法详解

在Java方法内部定义一个局部变量时,必须要初始化,否则就会编译失败,如下: 要让上述代码通过编译,只需在使用a之前给a赋一个初始值即可 如果是对象:下面用一个日期类演示 我们没有给年月日赋值,…

laravel8 导入 excel常见问题

上传xls 或 xlsx 文件后,文件解析为 zip 格式,输入正常情况,不影响解析 里面的内容 遇到解析内容,解析为空的情况,可能是 因为excel 存在多个 Sheet1 造成,服务器不能解析一个 Sheet1 的情况&#xff0…

阿里开源编程大模型 CodeQwen1.5:64K92编程语言,Code和SQL编程,评测接近GPT-4-Turbo

前言 阿里巴巴最近发布的CodeQwen1.5模型标志着其在编程语言模型领域的一次重大突破。这款开源模型不仅支持高达92种编程语言和64K的上下文长度,而且在多项性能评测中显示出接近或超过当前行业领导者GPT-4-Turbo的能力。 Huggingface模型下载:https://h…

# ERROR: node with name “rabbit“ already running on “MS-ITALIJUXHAMJ“ 解决方案

ERROR: node with name “rabbit” already running on “MS-ITALIJUXHAMJ” 解决方案 一、问题描述: 1、启动 rabbitmq-server.bat 服务时,出错 Error 2、查询 rabbitmqctl status 状态时,出错 Error 3、停止 rabbitmqctl stop 服务时&a…

如何使用CertCrunchy从SSL证书中发现和识别潜在的主机名称

关于CertCrunchy CertCrunchy是一款功能强大的网络侦查工具,该工具基于纯Python开发,广大研究人员可以利用该工具轻松从SSL证书中发现和识别潜在的主机信息。 支持的在线源 该工具支持从在线源或给定IP地址范围获取SSL证书的相关数据,并检索…

A Dexterous Hand-Arm Teleoperation System

A Dexterous Hand-Arm Teleoperation System Based on Hand Pose Estimation and Active Vision解读 摘要1. 简介2.相关工作2.1 机器人遥操作2.2 主动视觉(Active Vision) 3. 硬件设置4. 基于视觉的机器人手部姿态估计4.1 Transteleop4.2 Dataset 5. 主动…

【基础绘图】 09.小提琴图

效果图: 主要步骤: 1. 数据准备:生成随机数组 2. 数据处理:计算四分位数、中位数、均值、最大最小值 3. 图像绘制:绘制小提琴图 详细代码:着急的直接拖到最后有完整代码 步骤一:导入库包及…

使用C#和NMODBUS快速搭建MODBUS从站模拟器

MODBUS是使用广泛的协议,通讯测试时进行有使用。Modbus通讯分为主站和从站,使用RS485通讯时同一个网络内只能有一个主站,多个从站。使用TCP通讯时没有这方面的限制,可以同时支持多个主站的通讯读写。 开发测试时有各种复杂的需求&…

Milvus中那些年重要的基本概念

Milvus是一款开源的云原生向量数据库,专为海量向量数据的存储、检索和管理而设计。它支持实时的向量相似度搜索,适用于各种AI和机器学习应用场景。以下是Milvus的一些基本概念: 非结构化数据 非结构化数据是指那些不遵循特定数据模型或格式、…

npm无法安装node-sass 的问题

安装 node-sass 的问题呈现:4.9.0版本无法下载 Downloading binary from https://github.com/sass/node-sass/releases/download/v4.9.0/win32-x64-72_binding.node Cannot download "https://github.com/sass/node-sass/releases/download/v4.9.0/win32-x64-…

Linux服务器常用巡检命令,查看日志

查看日志 3.1 通过journalctl命令查看系统日志 命令&#xff1a;journalctl 3.2 通过tail查看系统日志 查看日志文件多少行代码&#xff1a;tail -n [行数] [日志文件] 4. 服务状态 4.1 查看指定服务的状态 命令&#xff1a;systemctl status <service> 比如查看防火墙…

React 第三十四章 React 渲染流程

现代前端框架都可以总结为一个公式&#xff1a;UI f&#xff08;state&#xff09; 上面的公式还可以进行一个拆分&#xff1a; 根据自变量&#xff08;state&#xff09;的变化计算出 UI 的变化根据 UI 变化执行具体的宿主环境的 API 对应的公式&#xff1a; const state…

Axure PR 10 制作顶部下拉三级菜单和侧边三级菜单教程和源码

在线预览地址&#xff1a;Untitled Document 2.侧边三级下拉菜单 在线预览地址&#xff1a;Untitled Document 文件包和教程下载地址&#xff1a;https://pan.quark.cn/s/77e55945bfa4 程序员必备资源网站&#xff1a;天梦星服务平台 (tmxkj.top)

事件代理 浅谈

事件代理是一种将事件处理委托给父元素或祖先元素来管理的技术。当子元素触发特定事件时&#xff0c;该事件不会直接在子元素上进行处理&#xff0c;而是会冒泡到父元素或祖先元素&#xff0c;并在那里进行处理。这样做的好处是可以减少事件处理函数的数量&#xff0c;提高性能…