使用 sed,如何替换匹配行中的单词?

sta*_*fry 4 sed regular-expression

我正在尝试编写一个 sed 表达式来检测与此类似的行:

s0:12345:respawn:/sbin/agetty -8 -s 115200 ttyS0 linux

并更换ttys0something_else

我不想检测注释掉的行(以 开头#

我可以替换整行,但是如何只替换子字符串,而使行的其余部分完好无损?

sta*_*fry 8

一种方法如下:

echo 's0:12345:respawn:/sbin/agetty -8 -s 115200 ttyS0 linux' | 
    sed -e '/^[^#]/ s/ttyS0/foo/'
Run Code Online (Sandbox Code Playgroud)