首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从路径列表中获取grep系列标题?

如何从路径列表中获取grep系列标题?
EN

Ask Ubuntu用户
提问于 2020-12-23 15:04:28
回答 1查看 157关注 0票数 2

我有以下命令:

代码语言:javascript
复制
find /home/cas/plex-media/series/ -type f -name '*.srt' | grep -v .en.srt

它将找到所有.srt文件,这些文件不是.en.srtseries的目录和子目录中。

这会给我一个可能是这样的列表:

代码语言:javascript
复制
/home/cas/plex-media/series/Scorpion/Season 4/Scorpion - S04E06 - Queen Scary.srt
/home/cas/plex-media/series/Scorpion/Season 4/Scorpion - S04E03 - Grow a Deer, A Female Deer.srt
/home/cas/plex-media/series/Devs/Season 1/Devs - S01E03 - Episode 3.srt
/home/cas/plex-media/series/Modern Family/Season 8/Modern Family - S08E21 - Alone Time.srt

这是一个简化的版本。可能有5或300项产出,其中可能有8或50倍的蝎子,例如。产量差别很大。

我试图找到一个命令(我可以在原始命令的后面传递),这将给我一个结果:

代码语言:javascript
复制
Scorpion, Devs, Modern Family

而不是:

代码语言:javascript
复制
Scorpion, Scorpion, Scorpion, Scorpion, Devs, Devs, Modern Family, Modern Family, Modern Family, 
Modern Family, Modern Family, Modern Family, etc.. 

你明白了吧。每次演出都有一个输出。不是每个文件都有。

它可以在另一个布局中。这并不重要(尽管我更喜欢上面的布局)。

我一直在尝试grep,但我做不到。所以我基本上是在问:你知道我怎么能得到上面的输出吗?

谢谢。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2020-12-23 15:38:31

假设系列标题与文件名的其余部分之间的分隔符是一致的空格-连字符空间,您可以使用awk执行这样的操作:

代码语言:javascript
复制
find . -type f -name '*.srt' ! -name '*.en.srt' -printf '%f\0' | 
  awk -v RS='\0' -F ' - ' '!seen[$1]++{print $1}' | paste -sd,

!seen[$1]构造不重复结果。最后的paste命令将输出从换行符分隔的列表转换为逗号分隔的列表。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1302367

复制
相关文章

相似问题

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