请看看我的心碎。
我坚持使用正则表达式缩小一些漫长的路径,如下所示:
/12345/123456/1234/123/12/1/1234567/13245678/123456789/1234567890
我想将此路径转换为以下形式:
/123/123/123/123/12/1/123/123/123/123
路径中的每个“目录”仅缩写为前 3 个字符
LONG_PATH="/12345/123456/1234/123/12/1/1234567/13245678/123456789/1234567890"
perl -pe "s#/(.{1,3})[^/]*?(/|$)#/\1\2#g" <<<$LONG_PATH
/123/123456/123/123/12//1234567/132/123456789/123
sed -E "s#/(.{1,3})[^/]*?(/|$)#/\1\2#g" <<<$LONG_PATH
/123/123456/123/123/12//1234567/132/123456789/123
我也试过:
perl -pe "s,/(.)(.)?(.)?[^/]*+,/\1\2\3,g" <<<$LONG_PATH
/123/123/123/123/12//123/132/123/123
还有很多其他的,没有“运气”——我仍然不知道。
请为我指出一条通往成功的正确道路。