Regex Bash替换令牌之间的字符串

Regex Bash替换令牌之间的字符串,regex,linux,sed,Regex,Linux,Sed,如何使用sed和regex替换一个令牌的可变数字之间的文本 输入示例: /abc/bcd/cde/ 预期产出: /../../../ 尝试过了: 命令:echo”/abc/bcd/cde/“| sed's/\/.\/.\/\/..\///g'输出:/../使用perl和: 将非斜杠([^/]\+)的每个子字符串替换为两个点: $> echo "/abc/bcd/cde/" | sed 's$[^/]\+$..$g' # => /../../../ 基于@Gilles Quenot实

如何使用sed和regex替换一个令牌的可变数字之间的文本

输入示例:

/abc/bcd/cde/

预期产出:

/../../../

尝试过了

命令:
echo”/abc/bcd/cde/“| sed's/\/.\/.\/\/..\///g'
输出:
/../
使用perl和:


将非斜杠(
[^/]\+
)的每个子字符串替换为两个点:

$> echo "/abc/bcd/cde/" | sed 's$[^/]\+$..$g'
# => /../../../

基于@Gilles Quenot实现,但是,在//

$ echo "/abddc/bcqsdd/cdde/" | sed -E 's|(/)?[^/]+/|\1../|g'
$> echo "/abc/bcd/cde/" | sed 's$[^/]\+$..$g'
# => /../../../
$ echo "/abddc/bcqsdd/cdde/" | sed -E 's|(/)?[^/]+/|\1../|g'