如何在bash/ shell脚本中使用sed删除单词后path中的所有内容?

ttygqcqt  于 2023-01-13  发布在  Shell
关注(0)|答案(3)|浏览(125)

当单词重复时,只想从特定的单词位置删除

Lets say my path is - /opt/xyz/config/config.xml
Solution I want after using sed is: /opt/xyz/config/

如何才能做到这一点?
我厌倦了使用{sed 's/config.*//'}〉〉这实际上删除了两个配置字

/opt/xyz/

我已经尝试过多种方式使用它

>  sed 's/config.*//'
tyky79it

tyky79it1#

也许用这种东西?

sed 's/[^/]*$//'

但是如果文件路径在shell变量中,那么您还可以用途:

mydir=${myfilepath%/*}/
km0tfn4u

km0tfn4u2#

另一个可能的解决方案是dirname bash函数,具体取决于您的用例。

dirname /opt/xyz/config/config.xml
/opt/xyz/config
wf82jlnq

wf82jlnq3#

使用BASH参数扩展:

p="/opt/xyz/config/config.xml"; echo "${p%/*}"
/opt/xyz/config

相关问题