gpt4 book ai didi

Linux:列出文件名的唯一部分

转载 作者:太空狗 更新时间:2023-10-29 11:27:31 25 4
gpt4 key购买 nike

我有大约 50K 个文件是一个目录(Linux 操作系统),它们的命名约定为 USER_ID.ORACLE_JOB_ID.SEQUENCED_NUMBER.pdf

我需要在文本文件中列出所有唯一的 ORACLE_JOB_ID。如何做到这一点?

PS: 忘了说在同一个目录下还有一些其他文件有不同的命名约定,我必须避免使用它们。

谢谢!

例子:1.6778390.完成2.o6778390.out3.AWRX_GBL_FAR1.98567432.4.dat.xml4.AWRX_GBL_FAR1.34789214.4.pdf

最佳答案

ls | awk 'BEGIN{FS="."}{ print $2 }' | sort | uniq > file.txt

ls 获取当前目录下所有文件名的列表

awk 用字段分隔符“.”分割每个文件名,只打印第二个字段

sort 对第二个字段进行排序

uniq 删除连续的相同行

编辑:如果您只想使用 .pdf 限制当前目录中的文件,请使用:

find . -iname '*.pdf' | awk 'BEGIN{FS="."}{ print $3 }' | sort | uniq > file.txt

当当前目录中有很多 pdf 时使用 ls *.pdf 会将参数溢出到 ls 中,如错误所示,因为它等同于调用 ls 有 50K 个不同的命令行参数,ARGV 溢出。

关于Linux:列出文件名的唯一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16653629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com