在 Linux Mint 的/usr/lib 目录中,除其他外,还有名为 xxx.so.d 的文件,其中 xxx 是它们的名称,d 是一个数字。作业是找到所有以 .so 文件结尾的文件并写出它们的名称 xxx。到目前为止我得到的代码是
ls | grep "\.so\." | cut -d "." -f 1
现在的问题是某些文件名的削减,例如有一个名为 libgimp-2.0.so.0 的文件,其中所需的输出将是 libgimp-2.0,因为该部分位于 .so 的前面 有没有办法在“.so”而不是第一个 . 处进行 cut cut?
最佳答案
pacholik 给出的答案可能会给您错误的文件(即:'xyz.socket' 将出现在您的列表中)。要更正他的脚本:
for i in *.so.*; do echo "${i%%.so*}"; done
另一种方法(在我看来更容易阅读)是使用一点 Perl:
ls | grep "\.so\." | perl -n0e "print ((split(/\.so/))[0], \"\n\")"
对不起,我不认为有一种方法可以像你问的那样只使用“剪切”。
关于linux - 更准确地在 Linux Mint 终端中使用 cut,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45963111/