【问题标题】:Linux: How to insert a line at a specific line number in a file?Linux:如何在文件的特定行号处插入一行?
【发布时间】:2015-06-07 10:12:39
【问题描述】:

我想在特定行号(秒)的文件中添加特定行,而不覆盖已经存在的数据。

我试过了:

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”,怎么做?

【问题讨论】:

标签: linux insert


【解决方案1】:

在行号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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    • 2022-08-17
    • 2013-12-14
    • 1970-01-01
    • 2014-02-02
    • 2020-03-29
    相关资源
    最近更新 更多