快速问题,我有这个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}'
查找,grep,awk或sed在这里是不必要的。将printf
与全局框一起使用:
printf '%.7s\n' 20*/