pwd | sed "s%^\(/[^/]*/\).*?\(/[^/]+\)$%\1...\2%"
sed路径解析不起作用
我不知道为什么这不起作用。在第一个捕获小组之后,我尝试了贪婪和非贪婪的恒星。我甚至不使用lookahead或任何东西。它在正则表达式测试器中工作。我试图抓住路径的第一个和最后一个文本部分(在挤压它的同时仍然提供我所在的目录的概念)。
这是一个tmux提示行,所以我试图避免引入像perl这样的重量级来完成这项工作。
pwd | sed "s%^\(/[^/]*/\).*?\(/[^/]+\)$%\1...\2%"
sed路径解析不起作用
我不知道为什么这不起作用。在第一个捕获小组之后,我尝试了贪婪和非贪婪的恒星。我甚至不使用lookahead或任何东西。它在正则表达式测试器中工作。我试图抓住路径的第一个和最后一个文本部分(在挤压它的同时仍然提供我所在的目录的概念)。
这是一个tmux提示行,所以我试图避免引入像perl这样的重量级来完成这项工作。
为什么不使用parameter expansions?参数扩展成本更低方式处理能力,不是一个命令,管你有没有外部命令:
start="${PWD#/}"; start="${start%%/*}"
end="${PWD/*\//}"
printf '/%s/…/%s $ ' "$start" "$end"
我得到了几个尝试后:
pwd | sed "s%^\(/[^/]*/\).*\(/[^/]*\)$%\1...\2%"
这是什么魔法?我第一次看到它。看起来像某种** **旨在做我想要的**。 *表情* – 2013-04-09 01:18:15
@StevenLu我添加了一个链接来描述魔法的答案。 – kojiro 2013-04-09 01:21:57