8

在如下作品的替代命令中将分隔符斜杠 ( /) 更改为管道 ( )|sed

echo hello | sed 's|hello|world|'

如何在下面的插入命令中将分隔符斜杠 ( /) 更改为管道 ( |) ?sed

echo hello | sed '/hello/i world'
4

2 回答 2

4

我不确定你提到的命令是什么意思:

echo hello | sed '/hello/i world'

但是,我假设您想对匹配 pattern 的行执行某些操作hello。假设您想将匹配模式的行更改helloworld. 为了做到这一点,你可以说:

$ echo -e "something\nhello" | sed '\|hello|{s|.*|world|}'
something
world

为了使用正则表达式匹配行,可以使用以下形式:

/regexp/
\%regexp%

where%可以被任何其他单个字符替换(注意\第二种情况的前面)。

手册提供了更多详细信息。

于 2013-07-19T09:08:47.667 回答
1

问题的答案是:

echo hello | sed '\|hello|i world'

这就是您如何在匹配路径的行之前添加一行,并避免带有转义的倾斜牙签综合症。

于 2021-04-23T06:40:58.233 回答