linux - 根据行号排除/忽略(不删除)第一行和最后一行
问题描述
我正在使用 sed 命令来编辑一些文本文件。
如何排除每个文本文件中的第一行和最后一行以进行编辑。
我浏览了 sed gnu 手册,但我只找到了匹配行范围的命令,即 1,$ 或排除范围,即 1,$!。我只需要排除第 1 行和最后一行 $。我不确定是否可以选择一个范围,即 2、$-1?
这是我的代码。
sed -e '1,$ s/.*/<p>&<\/p>/'' file.txt
解决方案
您不能在 sed 地址中使用数学。但是你可以告诉 sed 在第一行和最后一行什么都不做:
sed -e '1n; $n; s/.*/<p>&<\/p>/'
wheren
表示“将下一行输入读入模式空间”(如果是最后一行,它不会读取任何内容)。
(表达式末尾的两个单引号可能是拼写错误,对吧?)
推荐阅读
- loopback - Loopback 3 updateAll 过滤器不起作用
- javascript - 如何使用 Javascript 在 Android 上实现“增强现实”功能检测?
- c++ - 如何使用 Howard Hinnant 的日期库(或等效的 C++20 STL 功能)解析“2021.147.17.33.45”
- java - AOP - 从通知中取消或执行以下操作
- node.js - Passport-local-mongoose serializeUser 类型不正确
- javascript - 表单更新后第二次提交按钮不触发成功功能
- java - 如何解决 Spring Boot 中 Stred Procedure 调用中的参数错误?
- javascript - 如何使用 jscodeshift 创建程序节点
- python - 如何在 python 中填充/着色图表的某些部分?
- javascript - 如何根据用户在 Angular 页面上的视图触发操作?