小编sar*_*ana的帖子

regexp贪婪:缩小长路

请看看我的思想破坏者.

我坚持用正则表达式缩小了一些长路径,就像这样:

/12345/123456/1234/123/12/1/1234567/13245678/123456789/1234567890
Run Code Online (Sandbox Code Playgroud)

我想将此路径转换为以下形式:

/123/123/123/123/12/1/123/123/123/123
Run Code Online (Sandbox Code Playgroud)

路径中的每个"目录"缩写为仅3个第一个字符

LONG_PATH="/12345/123456/1234/123/12/1/1234567/13245678/123456789/1234567890"
perl -pe "s#/(.{1,3})[^/]*?(/|$)#/\1\2#g" <<<$LONG_PATH
Run Code Online (Sandbox Code Playgroud)

/ 123 /123分之123456/12分之123//132分之1234567/123分之123456789

sed -E "s#/(.{1,3})[^/]*?(/|$)#/\1\2#g" <<<$LONG_PATH
Run Code Online (Sandbox Code Playgroud)

/ 123 /123分之123456/12分之123//132分之1234567/123分之123456789

我也试过了:

perl -pe "s,/(.)(.)?(.)?[^/]*+,/\1\2\3,g" <<<$LONG_PATH
/123/123/123/123/12//123/132/123/123
Run Code Online (Sandbox Code Playgroud)

还有很多,没有"运气" - 我仍然不知道.

请指出一个成功的正确方法.

regex shell perl sed path

2
推荐指数
1
解决办法
156
查看次数

标签 统计

path ×1

perl ×1

regex ×1

sed ×1

shell ×1