VIm Grep на малиновой пи

Вот один лайнер для скриптов bash, чтобы получить список будних дней, это python 3. Легко модифицируется для любого, int в конце - это количество дней в прошлом, которое вы хотите.

python -c "import sys,datetime; print('\n'.join([(datetime.datetime.today() - datetime.timedelta(days=x)).strftime(\"%Y/%m/%d\") for x in range(0,int(sys.argv[1])) if (datetime.datetime.today() - datetime.timedelta(days=x)).isoweekday()<6]))" 10

Вот вариант, чтобы указать дату начала (или, вернее, конца)

python -c "import sys,datetime; print('\n'.join([(datetime.datetime.strptime(sys.argv[1],\"%Y/%m/%d\") - datetime.timedelta(days=x)).strftime(\"%Y/%m/%d \") for x in range(0,int(sys.argv[2])) if (datetime.datetime.today() - datetime.timedelta(days=x)).isoweekday()<6]))" 2015/12/30 10

. Здесь вариант для произвольной даты начала и окончания. не то, что это не очень эффективно, но полезно для ввода цикла for в сценарии bash:

python -c "import sys,datetime; print('\n'.join([(datetime.datetime.strptime(sys.argv[1],\"%Y/%m/%d\") + datetime.timedelta(days=x)).strftime(\"%Y/%m/%d\") for x in range(0,int((datetime.datetime.strptime(sys.argv[2], \"%Y/%m/%d\") - datetime.datetime.strptime(sys.argv[1], \"%Y/%m/%d\")).days)) if (datetime.datetime.strptime(sys.argv[1], \"%Y/%m/%d\") + datetime.timedelta(days=x)).isoweekday()<6]))" 2015/12/15 2015/12/30
0
задан 18 January 2019 в 14:41
поделиться

1 ответ

0
ответ дан Ingo Karkat 18 January 2019 в 14:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: