HDFS: Как удалить файлы, которые соответствуют шаблону - PullRequest
0 голосов
/ 28 ноября 2018

FI имеют список файлов mydata.YYYY-MM-DD.log с постфиксом в виде даты.Например: mydata.2018-11-26.log

Как мне написать hdf, который удалит все файлы с постфиксом даты раньше произвольной даты, например: 2018-11-20

Thx,

1 Ответ

0 голосов
/ 28 ноября 2018

Может быть что-то вроде этого:

Найти файлы с регулярным выражением. Для каждого найденного файла извлеките дату, сравните с заданным, примите меры, если они меньше.

#! /bin/bash

SCRIPT=`basename "$0"`

if [ $# -lt 2 ] ||[ "$1" == "" ] || [ "$1" == "--help" ] || [ "$1" == "-h" ] || [ "$1" == "/?" ]; then
    echo "$SCRIPT: Usage: [directory-path] [cutoff-date]"
    echo "$SCRIPT: Deletes files in the given path newer than the specified date YYYY-MM-DD"
    exit 1
fi

# TODO - check $CUTOFF_DATE is valid
# TODO - check $DIR is valid
DIR="$1"
CUTOFF="$2"

# Find files ending with YYYY-MM-DD.log
find "$DIR" -iname \*\[0-9\]\[0-9\]\[0-9\]\[0-9\]-\[0-9\]\[0-9\]-\[0-9\]\[0-9\].log |
while read file
do
    date_part=`echo "$file" | rev | cut -c5-14 | rev`
    if [ "$date_part" \< "$CUTOFF" ]; then
        echo "$SCRIPT: should remove \"$file\""
        # rm -f "$file"
    fi
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...