有时需要向一个文件的倒数第几行插入东西,或在前几行插入,不像直接追加那么简单。实际上,这是行编辑器的功能。
基于古老的行编辑器 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
本文介绍了如何利用古老的行编辑器ed和ex命令在文件的特定行进行插入操作。通过示例展示了在倒数第二行以及第一行插入新内容的步骤,并解释了命令的组成部分。最后,提到了使用ex命令的w选项来保存修改。
4967

被折叠的 条评论
为什么被折叠?



