我想念电视连续剧中的一些情节,我想知道每个季节我想念多少个文件。我想打印出每个季节的最后一集以及每个季节的文件数。
文件具有以下格式:
Friends S01E01 The Pilot.mkv
Friends S10E11 The One Where the Stripper Cries.mkv
答案 0 :(得分:1)
以下bash scipt将起作用:
#!/bin/bash
for i in {01..10}
do
ls Friends\ S$i* | tail -n 1
ls Friends\ S$i* | wc -l
printf "\n"
done
它将产生如下结果:
Friends S01E24 The One Where Rachel Finds Out.mkv
24
Friends S02E24 The One with Barry and Mindy's Wedding.mkv
24
答案 1 :(得分:1)
以下bash脚本/命令行工具应为您提供所需的信息,并提供详细信息,因为如果您有一个季节的最后一集但缺少前几集,可能会有所帮助:
#!/bin/bash
ls Friends* | cut -c10-14 | \
awk -F'E' '{arr[$1]=arr[$1]" "$2; num[$1]++;} END { for (i in arr) printf "Season %s (%2d files) : %s\n", i, num[i], arr[i] }' | \
sort
使用awk,将以季节编号为索引的数组增加以计数剧集数量,并打印剧集编号列表,以便您可以轻松查看缺少的剧集。我在第10到14列中使用了cut,因为在这种情况下,我们可以安全地假设数字在我们想要的位置。
输出如下:
Season 01 ( 9 files) : 01 02 03 04 05 06 07 08 09
Season 02 (10 files) : 01 02 03 04 05 06 07 08 09 10
Season 03 (10 files) : 01 02 03 04 05 06 07 08 09 10
Season 04 (10 files) : 01 02 03 04 05 06 07 08 09 10
Season 05 ( 9 files) : 01 03 04 05 06 07 08 09 10
Season 06 (10 files) : 01 02 03 04 05 06 07 08 09 10
Season 07 (10 files) : 01 02 03 04 05 06 07 08 09 10
Season 08 (10 files) : 01 02 03 04 05 06 07 08 09 10
Season 09 (10 files) : 01 02 03 04 05 06 07 08 09 10
Season 10 ( 7 files) : 01 02 03 04 05 06 10