删除字符串后的所有内容,但不包括该字符串

nic*_*ckg 1 bash awk sed

我正在使用vmrun列表来获取我机器上所有正在运行的vms,但我只想要目录名称.目前输出是

/path/to/vm.vmwarevm/vm.vmx
Run Code Online (Sandbox Code Playgroud)

我想要

/path/to/vm.vmwarevm
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用

vmrun list|sed s/vmwarevm.*//
Run Code Online (Sandbox Code Playgroud)

但这也删除了vmwarevm.有没有办法做到这一点,以便vmwarevm不被删除?

use*_*001 5

用途dirname:

$ dirname "/path/to/vm.vmwarevm/vm.vmx"
/path/to/vm.vmwarevm
Run Code Online (Sandbox Code Playgroud)