linux - 更准确地在 Linux Mint 终端中使用 cut

标签 linux terminal

在 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/

相关文章:

php 文件加载不正确显示空白页

linux - 将项目添加到启动脚本并以特定用户身份运行?

Linux - 按添加日期执行目录中的所有 Bash 脚本

linux - 使用 cygwin 运行 "./"bash/批处理文件

c - gtk 从对话框中显示对话框

linux - 一个 Shell 脚本,用于在一个步骤中以文件夹名称作为参数查找并 cd 到文件夹中

bash - 覆盖终端上的最后一行

linux - 搜索并替换文件和文件夹名称

macos - 在 Mac OS X 终端中使用命令作为 ctrl

PYTHONPATH 错误 Linux 终端 v 控制台