当单词重复时,只想从特定的单词位置删除
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.*//'
tyky79it1#
也许用这种东西?
sed 's/[^/]*$//'
但是如果文件路径在shell变量中,那么您还可以用途:
mydir=${myfilepath%/*}/
km0tfn4u2#
另一个可能的解决方案是dirname bash函数,具体取决于您的用例。
dirname
dirname /opt/xyz/config/config.xml /opt/xyz/config
wf82jlnq3#
使用BASH参数扩展:
p="/opt/xyz/config/config.xml"; echo "${p%/*}" /opt/xyz/config
3条答案
按热度按时间tyky79it1#
也许用这种东西?
但是如果文件路径在shell变量中,那么您还可以用途:
km0tfn4u2#
另一个可能的解决方案是
dirname
bash函数,具体取决于您的用例。wf82jlnq3#
使用BASH参数扩展: