grep для внешней команды

Discussion in 'Linux, Freebsd, *nix' started by user6334, 7 Apr 2016.

  1. user6334

    user6334 Member

    Joined:
    29 Jun 2015
    Messages:
    296
    Likes Received:
    17
    Reputations:
    12
    time cal | grep 27 - покажет последние числа текущего месяца и 3 значения: real user sys
    Мне надо фильтровать вывод команды time, к примеру, брать только real. Как это сделать?
     
  2. rct

    rct Active Member

    Joined:
    13 Jun 2015
    Messages:
    359
    Likes Received:
    107
    Reputations:
    7
    Для тебя читать маны западло, да?

     
  3. user6334

    user6334 Member

    Joined:
    29 Jun 2015
    Messages:
    296
    Likes Received:
    17
    Reputations:
    12
    Ты не понял. Причем тут time? Возьми любую другую внешнюю команду, например, proxychains. Как фильтровать вывод proxychains. Нужен универсальный способ, как в случае с grep
     
  4. t0ma5

    t0ma5 Reservists Of Antichat

    Joined:
    10 Feb 2012
    Messages:
    828
    Likes Received:
    815
    Reputations:
    90
    странный таск если честно, но если уж надо, то

    Code:
    ~$ (time cal)  2>&1  |grep -E 'real|27'
    24 25 26 27 28 29 30  
    real    0m0.001s
    
     
    _________________________
    user6334 likes this.
  5. rct

    rct Active Member

    Joined:
    13 Jun 2015
    Messages:
    359
    Likes Received:
    107
    Reputations:
    7
    Ну так бы и сказал) Регулярки, grep умеет.
     
  6. user6334

    user6334 Member

    Joined:
    29 Jun 2015
    Messages:
    296
    Likes Received:
    17
    Reputations:
    12
    Еще раз спасибо. Только хотелось бы понять, почему это так работает. Нет, ну вообще все понятно. Но вот как управлять выводом самой time? Команда: time > 1.txt не работает, и time 2 > 2.txt тоже ничего не дает, т.е. файлы пустые, а на экран все выводиться. Почему так? Мой преподаватель наверняка задаст этот вопрос
     
  7. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,414
    Likes Received:
    911
    Reputations:
    863
    time>>1.txt
     
    _________________________
  8. user6334

    user6334 Member

    Joined:
    29 Jun 2015
    Messages:
    296
    Likes Received:
    17
    Reputations:
    12
    неа, не работает
     
  9. goodguysoft

    goodguysoft Member

    Joined:
    25 Mar 2016
    Messages:
    49
    Likes Received:
    24
    Reputations:
    2
    Дело в том, что эта команда очень специфическая. Многие шелы имеют свою реализацию этой команды, потому с ней возможны различные чудеса.
    Более логично ведет себя /usr/bin/time. К примеру:

    Code:
    /usr/bin/time cal 2>&1 | grep user
    даёт более предсказуемый вывод, чем то же самое без /usr/bin
    Так что задай вопрос ближе к реальной задаче, чтобы получить полезный ответ.
     
    winstrool likes this.
  10. user6334

    user6334 Member

    Joined:
    29 Jun 2015
    Messages:
    296
    Likes Received:
    17
    Reputations:
    12
    Вот что про time нашел:
    Ключевое слово (keyword) -- это зарезервированное слово, синтаксический элемент (token) или оператор. Ключевые слова имеют специальное назначение для командного интерпретатора, и фактически являются элементами синтаксиса языка командной оболочки. В качестве примера можно привести "for", "while", "do", "!", которые являются ключевыми (или зарезервированными) словами. Подобно встроенным командам, ключевые слова жестко зашиты в Bash, но в отличие от встроенных команд, ключевые слова не являются командами как таковыми, хотя при этом могут являться их составной частью. Исключение из правил -- команда time, которая в официальной документации к Bash называется ключевым словом.
     
  11. goodguysoft

    goodguysoft Member

    Joined:
    25 Mar 2016
    Messages:
    49
    Likes Received:
    24
    Reputations:
    2
    Вот пример:

    Code:
    /usr/bin/time cal 2>&1 | grep elapsed | awk '{print $3;}'
    Выдаёт что-то вроде:

    0:00.00elapsed

    Используйте с любой другой командой, чтобы получить время ее выполнения. Или вам важно исползовать именно шелловский time?
     
  12. user6334

    user6334 Member

    Joined:
    29 Jun 2015
    Messages:
    296
    Likes Received:
    17
    Reputations:
    12
    да не, причем тут time, я просто пытался разобраться с фильтрацией вывода контейнеров вида proxichains python test.py [параметры]. Теперь понял как использовать скобки. Правда со вложенными скобками уже выходит фигня. Ну и про конструкцию вида 2>&1 здесь, подсказали, спасибо. Я раньше все вопросы в песочнице писал, но мне никто не отвечал. А все профи оказывается здесь собрались )