pwd | sed "s%^\(/[^/]*/\).*?\(/[^/]+\)$%\1...\2%"
我不确定为什么这不起作用。我在第一个捕获组之后尝试了贪婪和非贪婪的恒星。我甚至没有使用前瞻或任何东西。它适用于正则表达式测试人员。我试图抓住路径的第一个和最后一个文本部分(压扁它,同时仍然提供我所在的dir的想法)。
这是针对tmux提示行的,所以我有点试图避免引入像perl这样重量级的东西来完成这项工作。
答案 0 :(得分:1)
为什么不使用parameter expansions?参数扩展的成本 way 比你在那里的命令,管道和外部命令更少的处理能力:
start="${PWD#/}"; start="${start%%/*}"
end="${PWD/*\//}"
printf '/%s/…/%s $ ' "$start" "$end"
答案 1 :(得分:0)
经过几次尝试后我得到了它:
pwd | sed "s%^\(/[^/]*/\).*\(/[^/]*\)$%\1...\2%"