首页 > 解决方案 > 如何使用 SED 命令在模式匹配之前插入一行

问题描述

运行命令后sed -i "/class MySQLPagedResultsajax/i Thing I Wish To Add;" /File/Location/

我得到的结果如下:

Thing I Wish To Add;class MySQLPagedResultsajax 

而我想实现这一点:

Thing I Wish To Add;
class MySQLPagedResultsajax 

请帮忙,因为我想要一个单行命令解决方案,因为这需要在多个文件上完成,我将使用 Excel 为每个文件创建单独的命令。

标签: linuxunixsed

解决方案


只需将 awk 用于除简单的 s/old/new 之外的任何内容:

awk '/class MySQLPagedResultsajax/{print "Thing I Wish To Add;"} 1' file

添加-i inplace到使用 GNU awk 进行伪就地编辑,就像您可以通过添加-i 使用 GNU sed 进行伪就地编辑一样。


推荐阅读