根据行号执行搜索和替换

只在第4行上进行搜索和替换:

# sed -e '4s/one/replaced/g' /tmp/file
four five six
one
seve eight nine
replaced two three
one
ten eleven twelve
one
sed如何只在特定行上进行搜索和替换

示例文件

# cat /tmp/file
four five six
one
seve eight nine
one two three
one
ten eleven twelve
one

根据特定的字符串匹配执行搜索和替换

使用行号是一种方法,但仍然不是最好的方法,更简单的方法是,如果我们已经知道要执行替换的行中存在的字符串。
例如,在我的示例文件中,我想替换包含字符串“two”的行中的“one”

# sed -e '/two/s/one/replaced/g' /tmp/file
four five six
one
seve eight nine
replaced two three
one
ten eleven twelve
one

假设文件中有多个 'two' 实例,但我们只想在以 'two' 开头的行上执行替换:

# sed -e '/^two/s/one/replaced/g' /tmp/file

在以“two”结尾的行上执行替换:

# sed -e '/two$/s/one/replaced/g' /tmp/file
日期:2020-06-02 22:17:33 来源:oir作者:oir