Что Python эквивалентен из grep-v?

$ crontab -e
0 13 * * 2 cp -b /usr/local/src/djcode/c2duo_mms /home/sh/

crontab -e команда должна потянуть crontab файл для редактирования в Вашем предпочтительном редакторе (Установленный РЕДАКТОРОМ или ВИЗУАЛЬНЫМИ переменными среды). crontab строка говорит для выполнения команды на 0th минуте, 13-м часе, 2-м дне недели, любом дне месяца любой год. Сама команда является простой единственной копией файла, за исключением того, что я добавил -b аргумент так, чтобы cp делает файл резервной копии. Это должно оставить Вас с ДВУМЯ резервными копиями в любом случае, текущим и предыдущим (с .bk расширением).

Править: Для папки вместо файла попробовать rsync:

0 13 * * 2 rsync -av /usr/local/src/djcode/c2duo_mms/ /home/sh/c2duo_mms/
14
20.12.2018, 22:35
2 ответа

regex в Python, любой search или match методы, a возвратов Match объект или None. Для grep -v эквивалентный, Вы могли бы использовать:

import re
for line in sys.stdin:
    if re.search(r'[a-z]', line) is None:
        sys.stdout.write(line)

Или более кратко:

import re; sys.stdout.writelines([line for line in sys.stdin if re.search(r'[a-z]', line) is None])
17
27.01.2020, 19:51
  • 1
    +1 ТАК ссылка в комментарии упоминает отрицательно-предварительные утверждения, но быть честным я думаю, что Ваш отрывок намного более разумен и изящен.спасибо. –  ixtmixilix 24.02.2012, 02:58
  • 2
    это оказывается Вами, может также использовать [^a-z] для соответствия дополнению [a-z] –  ixtmixilix 24.02.2012, 14:29

Оказывается, что можно просто использовать [^a-z] для значения grep -v [a-z].

Я использую его как:

#!/usr/bin/env python
# coding=UTF-8

import sys, re

for file in sys.argv[1:]:
    f = open(file)
    string = f.read()
    regex = re.compile('[^a-z]')
    subs = regex.sub('', string)
    f.close()
    print subs
1
27.01.2020, 19:51

Теги

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