regex - 如何在 bash 中从绝对路径创建相对路径?

标签 regex bash sed relative-path pwd

<分区>

我在这个目录中:

/home/michal/project/test/my-utils/rel/0.1.0

我想在 Linux shell 中获取/home/michal/project/的相对路径:

../../..

我尝试过使用 sed 进行一些操作,但没有成功创建正则表达式。例如。尝试之一:

pwd | sed -e "s/.*project\///g" | sed -e "s/[^\/]+/../g"

有什么技巧吗?

最佳答案

您可以使用命令realpath:

realpath --relative-to=${PWD} /home/michal/project/

来自帮助页面:

--relative-to=FILE print the resolved path relative to FILE

关于regex - 如何在 bash 中从绝对路径创建相对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53191033/

相关文章:

用递增数字替换字符串的正则表达式

arrays - jq 递归删除出现在架构中任意位置的数组中的值

正则表达式删除小数点后不必要的零

ios - 最少8个字符的密码正则表达式,包括至少3个: uppercase character,小写字符、数字和特殊字符

.net - 如何从 WHOIS 结果中解析电子邮件地址

linux - 我对以下示例的重定向操作持怀疑态度

linux - GoDaddy cpanel 安装 : Trying to install Drush for Drupal and possibly can't find php-cli?

bash - 别名和导出(和函数!)[BASH] 之间有什么区别?

linux - 仅 sed 连续数字并删除任何更长和更短的内容

regex - sed 替换为正则表达式