首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >列出没有其他文件后缀的文件

列出没有其他文件后缀的文件
EN

Unix & Linux用户
提问于 2017-12-11 12:56:25
回答 1查看 424关注 0票数 3

考虑具有以下文件的目录:

代码语言:javascript
运行
复制
file1
file1.suffix
file2
file3
file3.suffix

我需要列出所有文件,以便不存在具有相同名称和已知后缀的另一个文件。在上面的示例中,这将只匹配file2

这就是我想出来的:

代码语言:javascript
运行
复制
diff --new-line-format= --unchanged-line-format= \
    <(ls -I '*.suffix' | sort) \
    <(ls *.suffix | sed 's/\(.*\)\.suffix/\1/' | sort)

有更简单更短的方法吗?

编辑1

在我的具体案例中,实际上有多个后缀(绑定区域文件/w dnssec):

代码语言:javascript
运行
复制
example.org
example.org.jbk
example.org.jnl
example.org.signed
example.org.signed.jnl
example.com

我试图列出没有启用dnssec的区域,也就是没有其他具有.signed扩展名的文件的区域。

这是我的尝试:

代码语言:javascript
运行
复制
diff --new-line-format= --unchanged-line-format= \
    <(ls -I '*.jbk' -I '*.jnl' -I '*.signed' -I '*.signed.jnl' | sort) \
    <(ls *.signed | sed 's/\(.*\)\.signed/\1/' | sort)
EN

回答 1

Unix & Linux用户

发布于 2017-12-11 13:13:40

由于当前的文件列表具有简单的命名约定-下面是简短的ls + cut + uniq方法:

代码语言:javascript
运行
复制
ls -v1 * | cut -d'.' -f1 | uniq -u
票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/410215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档