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}'
快速提问,我有这个 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}'