【发布时间】:2018-04-29 03:19:54
【问题描述】:
我正在尝试查找特定文件的文件夹位置,例如libgfortran.so。
到目前为止我尝试过的是:
find 2>/dev/null / -name libgfortran.so
... 这将输出如下内容到stdout(将stderr 重定向到/dev/null):
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.so
我想从中只提取文件夹(没有尾随 /):
/usr/lib/gcc/x86_64-linux-gnu/4.8
我已经尝试过类似的东西:
find 2>/dev/null / -name libgfortran.so | sed 's/\(\/.*\/\)/\1/'
...我希望能够捕获第一个和最后一个 / 之间的内容(然后我需要删除最后一个 /),但我得到的输出仍然是:
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.so
如何实现我想要的?
【问题讨论】:
-
@Androbin 这给出了
sed: -e expression #1, char 12: invalid reference \1 ons' 命令的 RHS` -
对不起,我的意思是 sed 's|(.*)/|\1|g'
-
@Androbin 也产生了完全相同的错误
-
恐怕,所以去掉了我的反斜杠。
-
将它们放在左括号和右括号之前。