shell行编辑器ed:在倒数第几行插入

Posted 境悟初

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell行编辑器ed:在倒数第几行插入相关的知识,希望对你有一定的参考价值。

有时需要向一个文件的倒数第几行插入东西,或在前几行插入,不像直接追加那么简单。实际上,这是行编辑器的功能。

基于古老的行编辑器 ed命令:http://www.gnu.org/software/ed/manual/ed_manual.html

倒数第几行插入

比如在倒数第二行插入

# cat file 
line1
line2
line3
line4
line5
# ed -s file 
$-0i
new line
.
,p
line1
line2
line3
line4
new line
line5

上面的命令分为4部分:

  • $-0i: 从0开始是倒数第1行之前
  • 中间是内容,用 \\n 换行符分开
  • .: 点为结束
  • ,p: 打印出来

放在一行执行:

# printf '$-0i\\nnew line\\n.\\n,p\\n' | ed -s file
line1
line2
line3
line4
new line
line5

现在发现,其实文件并没被更新,要更新可以使用 ex命令,然后将指令换为 w

# printf '$-0i\\nnew line\\n.\\nw\\n' | ex -s file
# cat file 
line1
line2
line3
line4
new line
line5

在第几行插入

同样可以从前面开始,比如在第一行插入

# printf '1i\\nnew line\\n.\\n,p\\n' | ed -s file
new line
line1
line2
line3
line4
line5

以上是关于shell行编辑器ed:在倒数第几行插入的主要内容,如果未能解决你的问题,请参考以下文章

shell 打印指定行倒数几行

shell 打印指定行倒数几行(超清晰)

shell 读取文件指定单行 多行 连续行 倒数几行

shell脚本 获取第几行 第几列 的命令 awk sed

vim编辑器

mysql 查询第几行到第几行记录 查询最后一行和第一行记录 查询前几行和后几行记录(查询正序或者倒序前几行)