請看看我的大腦斷路器。regexp貪心:收縮長路徑
我會停留在與正則表達式萎縮一些長的路徑,像這樣:
/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 /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
和許多另一個,沒有 「運氣」 - 我仍然不知道。
請給我一個正確的成功之路。
是否要縮短這兩個目錄和文件?如果只有前者使用:'sed -r':a; s |(/ [^ /] {3})[^ /] +/| \ 1/| g; ta'文件' – potong