如何获取当前的foldername并从bash中的名称中删除字符

时间:2018-06-01 16:00:48

标签: linux bash sed makefile

我试图在我的makefile中编写一个命令来获取当前文件夹并删除所有"。"从名字。 我可以使用$${PWD##*/}获取当前文件夹,然后我可以删除带有$${PWD//.}的"。"但我无法弄清楚如何将这两者合并为一个。

我需要这个的原因是根据项目名称杀死我的docker容器。这是我的命令:

docker ps -q --filter name="mycontainer" | xargs -r docker stop

我希望我能在我的容器名称之前注入项目名称,如下所示:

docker ps -q --filter name=$${PWD##*/}"_mycontainer" | xargs -r docker stop

1 个答案:

答案 0 :(得分:0)

您可以尝试:

var=$(echo ${PWD##*/} | sed "s/\.//")

或:

var=$(tmp=${PWD##*/} && printf "${tmp//./}")

在您的使用案例中将是:

docker ps -q --filter name=$(tmp=${PWD##*/} && printf "%s_mycontainer" "${tmp//./}") | xargs -r docker stop

请注意,有更多方法可以做到这一点(效率更高)。