【发布时间】:2015-09-29 14:57:31
【问题描述】:
使用 sed,我如何替换关键字后面的字符,但 仅 在所述关键字末尾的 x 个字符内。例如,假设字符串:
foo bar baz quz
假设关键字是bar,字符z将被替换为字符t,但只能在关键字结尾的3个字符内(不包括空格)。
期望的结果是:
foo bar bat quz
编辑:我猜这里可能会指出扩展正则表达式的用法,但不确定如何使用。
sed -re 's/(::bar) some_regex_magic_here /' infile
【问题讨论】:
-
@dustmouse 您的建议与用户 Joe 的回复中所述的问题相同:
echo "foo bar bzz quz" | sed -re 's/(bar.{3})z/\1t/'给出了foo bar bzt quz,而不是所需的foo bar btt quz。