Linux:如何在文件中的特定行号处插入一行?

时间:2015-06-07 10:12:39

标签: linux insert

我希望在特定行号(第二个)中为特定行添加特定行,而不会覆盖已存在的数据。

我试过这个:

sed -i '2i - jstat' FILE

但这只是用" - jstat"覆盖了第二行。

相反,我想添加一个新的第二行并将下一行推到数字3。 让我们说文件看起来像那样:

[root@puppet roles]# head -5 !$
head -5 buncher.yaml
classes:
  - workspace
  - fstab
  - role_specific

我想在第二行添加一个新模块,我想要"工作区"模块成为第三行。

更重要的是,我希望新行以2个字符的标签大小开始,然后是" - jstat"如:" TabTab - jstat",怎么办呢?

1 个答案:

答案 0 :(得分:0)

要在行号x之前插入一行,您可以使用以下sed命令:

sed 'x i\LINE_TO_ADD' filename > temp_file
mv temp_file filename

以下是将<TAB><TAB>Hello How are you!添加到tempfile的示例,其内容为:

123
234
345

要在第2行之前添加,我编写了以下sed命令:

sed '2 i\\t\tHello How are you!' tempfile > temp_file
mv temp_file tempfile

tempfile的最终内容是:

123
<TAB><TAB>Hello How are you!
234
345

有关详细信息,请参阅此Sed tutorial