请看看我的思想破坏者.
我坚持用正则表达式缩小了一些长路径,就像这样:
/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)
还有很多,没有"运气" - 我仍然不知道.
请指出一个成功的正确方法.