Regex Bash替换令牌之间的字符串
如何使用sed和regex替换一个令牌的可变数字之间的文本 输入示例: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实
/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'