linux使用sed在文件的行首或者行尾添加字符。

示例文件

# cat /tmp/file
Line One
Line Two
Line Three
Line Four
Line Five

在文件的每一行末尾添加一个后缀

# sed -ne 's/$/:SUFFIX &/p' /tmp/file
Line One :SUFFIX
Line Two :SUFFIX
Line Three :SUFFIX
Line Four :SUFFIX
Line Five :SUFFIX

在同一文件中进行更改

# sed -i 's/$/:SUFFIX &/' /tmp/file

使用单个命令同时添加前缀和后缀

这可以使用以下命令完成

# sed -e 's/.*/PREFIX: & :SUFFIX/' /tmp/file
PREFIX: Line One :SUFFIX
PREFIX: Line Two :SUFFIX
PREFIX: Line Three :SUFFIX
PREFIX: Line Four :SUFFIX
PREFIX: Line Five :SUFFIX

在特定行添加前缀或者后缀

假设我们知道必须添加新内容的行号,则可以完成此操作

例如,我想在第 2 行添加此前缀和后缀

# sed -e 2's/$/:SUFFIX &/' /tmp/file
Line One
Line Two :SUFFIX
Line Three
Line Four
Line Five

再次为前缀

# sed -e 2's/.*/PREFIX: &/' /tmp/file
Line One
PREFIX: Line Two
Line Three
Line Four
Line Five

如果我们没有行号,而是有一个要匹配并执行此操作的模式名称,该怎么办

有两种方法可以做到这一点,这完全取决于要求。

1.可以获取具体的行号并执行操作
2.可以grep模式然后执行动作

例如:

我们可以使用以下命令获取行号

# grep -n "Line Three" /tmp/file | cut -d: -f -1
3

现在既然你知道你的文本在第 3 行,你现在可以使用 sed,如上所示

或者

我们可以简单地搜索模式并执行如下所示的操作

# sed -e 's/Line Three/PREFIX: &/' /tmp/file
Line One
Line Two
PREFIX: Line Three
Line Four
Line Five

在同一文件中进行更改

# sed -i 's/Line Three/PREFIX: & :SUFFIX/' /tmp/file

在文件的每一行前面添加一个前缀

这里我们将在我的文件的每一行前面添加一个文本“PREFIX:”

# sed -ne 's/.*/PREFIX: &/p' /tmp/file
PREFIX: Line One
PREFIX: Line Two
PREFIX: Line Three
PREFIX: Line Four
PREFIX: Line Five

在同一文件中进行更改

# sed -i 's/.*/PREFIX: &/' /tmp/file
日期:2020-06-02 22:17:22 来源:oir作者:oir