Грэп гггг-мм из названия каталогов - PullRequest
0 голосов
/ 24 марта 2020

Быстрый вопрос, у меня есть пункты 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 с [/_] в качестве разделителя, но он не справляется с работой правильно.

Ответы [ 2 ]

2 голосов
/ 24 марта 2020

Требуемое выражение grep:

find ... | egrep --only-matching '[[:digit:]]{4}-[[:digit:]]{2}'
2 голосов
/ 24 марта 2020

Не могли бы вы, пожалуйста, попробуйте следующее. Я не проверял его, так как у меня нет такой же структуры каталогов, как у 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)}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...