Grep yyyy-mm 来自目录名称

Grep yyyy-mm from directories name

快速提问,我有这个 find 子句可以在我的外部硬盘驱动器中找到我的备份目录。

pi@raspberrypi:/media/pi/WD/HS_BACKUP $ find . -depth -maxdepth 2 -type d -name "20*"
/media/pi/WD/HS_BACKUP/2019-12-26_22-30-01
/media/pi/WD/HS_BACKUP/2019-12-27_22-30-01
/media/pi/WD/HS_BACKUP/2020-01-29_23-00-02
/media/pi/WD/HS_BACKUP/2020-02-05_23-00-01
/media/pi/WD/HS_BACKUP/2020-02-12_23-00-01
/media/pi/WD/HS_BACKUP/2020-02-19_23-00-01
/media/pi/WD/HS_BACKUP/2020-02-26_23-00-01

我需要 grep yyyy-mm 部分目录(例如 2020-02),理想的结果应该是。

2019-12
2019-12
2020-01
2020-02
2020-02
2020-02

我该怎么做?我尝试使用 awk[/_] 作为分隔符,但它没有正确完成工作。

能不能请你试试看。还没有测试过,因为我没有像 OP 一样的目录结构,应该可以,但是。

find . -depth -maxdepth 2 -type d -name "20*" | awk 'BEGIN{FS="/"} match($NF,/^[0-9]{4}-[0-9]{2}/){print substr($NF,RSTART,RLENGTH)}'

你需要的grep表达式是:

find ... | egrep --only-matching '[[:digit:]]{4}-[[:digit:]]{2}'