Ответы пользователя по тегу Командная строка
  • Какая утилита подобна wget, но умеет делать upload дерева файлов по https?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    А API вообще позволяет одним запросом сразу дерево загружать? Если да, то курлом по идее можно любой запрос сделать, поэтому можно и такой. Если нет и нужно делать много запросов, то придётся разбивать вашу задачу на много вызовов курла. В чем проблема? Пусть это будет батч с кучей простых вызовов курла по одному файлу. Почему нет?
    Ответ написан
    Комментировать
  • Как узнать курс валюты в командной строке терминала?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Берёте любое API с курсами и получаете инфу, в чем проблема конкретно у вас?
    curl https://www.cbr-xml-daily.ru/daily_json.js | jq ".Valute.EUR.Name,.Valute.EUR.Value"
    Ответ написан
    Комментировать
  • Нужен простой hex-редактор или программа патчер?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Держите вот я написал вам такую утилиту:
    #!/usr/bin/python3
    
    
    def patch_file(patch_fn, dest_fn, offset=0, limit=None):
        with open(patch_fn, 'rb') as patch_file, open(dest_fn, 'rb+') as dest_file:
            patch = patch_file.read()[:limit]
            dest_file.seek(offset)
            dest_file.write(patch)
    
    
    if __name__ == '__main__':
        import sys
        args = sys.argv[1:]
        if args:
            args[2:] = [int(v) for v in args[2:]]
            print(args)
            patch_file(*args)
        else:
            print(f'{sys.argv[0]} <PATCH_FILE_NAME> <DEST_FILE_NAME> [OFFSET] [LIMIT]')
            print('  OFFSET by default is 0')
            print(
                '  No LIMIT by default. You can use counting from end of patch file content to limit them. \n'
                '    For example LIMIT=5 will truncate 5 bytes of patch content\n'
                '    LIMIT=-5 cut last 5 bytes of patch content before patching.'
            )

    Сохраните в файл, например patch.py
    Под линуксом нужно сделать chmod +x patch.py.
    А под виндой можно запускать так:
    python patch.py patch_file_name dest_file_name 33 -2

    Заменит в dest_file_name все с 33 символа на содержимое patch_file_name за исключением двух последних символов патча. Последний и предпоследний параметры можно опустить.

    Или использовать утилиту dd. Она стандартная и портирована под винду.
    Ответ написан
  • В чем проблема с выводом?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Для большей ясности стоило бы приести пример выхлопа команды
    occtl --json show users
    Чтобы отвечающим не приходилось ставить VPN-сервер и подключать тестовых пользователей.
    Сходу видно, что вы запрашиваете результат в формате json, а затем парсите его грепами и awk'ом, что крайне бессмысленно и беспощадно. Почему бы не использовать jq для этой цели, а не пытаться забить шуруп молотком.
    Приведенная вами проблема связана с тем, что, вероятно, выхлоп в виде json происходит без гарантии порядка ключей, а ваш способ доставать из него данные весьма варварский.

    Да и проблемы в таком подходе на этом не ограничатся, ведь список пользователей может измениться между итерациями и даже между получаением имени и ip.
    Следовало бы единоразово получить все сырые данне, а затем вытаскивать из них нужное.
    Ответ написан
    Комментировать
  • Какой командой посмотреть расположение программы, установленной через python setup.py install в консоли linux?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Начните с whereis cli_entry_point_name.
    Она покажет что-то вроде:
    /usr/bin/cli_entry_point_name
    Наверно это python-файл. Вы можете убедиться в этом так:
    file /usr/bin/cli_entry_point_name
    Это также может быть симлинк на реальное расположение скрипта, команда file покажет вам реальное его месторасположение.
    Если это питоновский скрипт, загляните вовнутрь, там наверняка импортируется какой-то питоновский модуль.
    pip show module_name
    покажет где лежит библиотека.
    Это также может быть шелл-скрипт или вообще любой скрипт, там может активироваться env-окружение... короче надо смотреть глазами. Вариантов много, нет смысла описывать все.
    Ответ написан
    2 комментария
  • Как скачать wget'от ссылки из файла и сохранять не index.html, а site.ru?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Предыдущий немногословный оратор имел в виду, что у wget есть ключ -O, который говорит под каким именем надо сохранить скачанное.
    Ссылка на мануал, как бы, намекает на правильный путь поиска подобных решений и мне такой воспитательный подход крайне импонирует.

    Однако я вам рекомендую вместо xargs использовать вот такое:
    while read -r; do wget $REPLY -O $REPLY.html; done < ru.txt
    Ответ написан
    1 комментарий
  • Как подставить в параметры команды имя текущего каталога?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    echo %cd%
    но... arj? В 2020 году? Серьёзно?...
    Ответ написан
    4 комментария