• Как при помощи команды cut отобразить только права доступа к файлам?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    После минуты чтения man cut:
    $ ls -l /etc | cut -f 1 -d ' '
    
    drwxr-xr-x
    -rw-r--r--
    -rw-r--r--
    -rw-r--r--
    -rw-r--r--
    -r--r-----
    drwxr-x---
    -rw-r--r--
    drwxr-xr-x
    drwxr-xr-x
    drwxr-xr-x
    -rw-r--r--
    ...
    Ответ написан
    Комментировать
  • Как правильно открывать доступ в SFTP?

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

    erge
    @erge
    Примус починяю
    curl + awk
    curl -s https://www.cbr.ru/scripts/XML_daily.asp | awk -F '</Valute>'  '{for (i=1; i<=NF; i++) if($i ~ /USD|EUR/) print substr($i, index($i, "CharCode")+9,3)" "substr($i, index($i, "Value")+6,7)}' 2>/dev/null


    wget + awk
    wget -qO- https://www.cbr.ru/scripts/XML_daily.asp | awk -F '</Valute>'  '{for (i=1; i<=NF; i++) if($i ~ /USD|EUR/) print substr($i, index($i, "CharCode")+9,3)" "substr($i, index($i, "Value")+6,7)}' 2>/dev/null


    Perl
    perl -MLWP::Simple -e '$_=get("https://www.cbr.ru/scripts/XML_daily.asp");while(m/(USD|EUR).+?Value>([^<]+)/g){print "$1 $2\n"}'


    Python
    python3 -c 'import requests,re;print("\n".join([" ".join(i.groups()) for i in list(re.finditer(r"(USD|EUR).+?Value>([^<]+)", requests.get("https://www.cbr.ru/scripts/XML_daily.asp").text))]))'


    PowerShell
    # вариант 1 (RegEx)
    (Invoke-WebRequest -UseBasicParsing -URI 'https://www.cbr.ru/scripts/XML_daily.asp').Content | Select-String '(USD|EUR).+?Value>([^<]+)' -AllMatches | foreach {$_.Matches.Groups[1,2,4,5].Value}
    # вариант 2 (XML/XPath)
    ([xml](Invoke-WebRequest -UseBasicParsing -URI 'https://www.cbr.ru/scripts/XML_daily.asp').Content).SelectNodes('//Valute[CharCode="USD" or CharCode="EUR"]') | ft Name,Value


    JavaScript (Node.js)
    node -e "https.get('https://www.cbr.ru/scripts/XML_daily.asp',r=>{s='';r.on('data',d=>s+=d);r.on('end',()=>[...s.matchAll(/(USD|EUR).+?Value>([^<]+)/g)].forEach(e=>console.log(`${e[1]} ${e[2]}`)))})"
    Ответ написан
    Комментировать
  • Как узнать курс валюты в командной строке терминала?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    у ЦБР есть официальная страничка где можно узнать как получить нужные данные

    если коротко, то будет примерно так:
    $ curl -s "http://www.cbr.ru/scripts/XML_daily.asp" | enconv -x UTF-8 | xq -r '.ValCurs.Valute[] | select(.CharCode == "USD" or .CharCode == "EUR") |.CharCode + " " + .Value'
    USD 74,7087
    EUR 79,5716


    с помощью curl качаем нужные данные в формате xml
    далее переводим с помощью утилиты enconv в обще нормальную кодировку
    затем с помощью утилиты xq разбираем полученные данные
    xq входит в пакет yq которая по сути является надстройкой над jq, то есть здесь xml транслируется в json а после обрабатывается утилитой jq

    вот пример вывода всех доступных курсов валют в отформатированном виде с помощью утилиты csview
    curl -s "http://www.cbr.ru/scripts/XML_daily.asp" | enconv -x UTF-8 | xq -r '.ValCurs.Valute[] | .CharCode + " " + .Nominal + " " + .Value' | sort | awk 'BEGIN{print "Code Nominal Value"}{print}' | csview -d' '

    вывод:
    ┌──────┬─────────┬─────────┐
    │ Code │ Nominal │ Value   │
    ├──────┼─────────┼─────────┤
    │ AED  │ 1       │ 20,3400 │
    │ AMD  │ 100     │ 19,1325 │
    │ AUD  │ 1       │ 51,0933 │
    │ AZN  │ 1       │ 43,9463 │
    │ BGN  │ 1       │ 40,7332 │
    │ BRL  │ 1       │ 14,3646 │
    │ BYN  │ 1       │ 26,6998 │
    │ CAD  │ 1       │ 55,2743 │
    │ CHF  │ 1       │ 80,5485 │
    │ CNY  │ 1       │ 10,8398 │
    │ CZK  │ 10      │ 33,5739 │
    │ DKK  │ 1       │ 10,7002 │
    │ EGP  │ 10      │ 24,4263 │
    │ EUR  │ 1       │ 79,5716 │
    │ GBP  │ 1       │ 90,6889 │
    │ GEL  │ 1       │ 28,3363 │
    │ HKD  │ 10      │ 95,3890 │
    │ HUF  │ 100     │ 20,7001 │
    │ IDR  │ 10000   │ 49,2185 │
    │ INR  │ 100     │ 90,1603 │
    │ JPY  │ 100     │ 55,4219 │
    │ KGS  │ 100     │ 85,4595 │
    │ KRW  │ 1000    │ 57,2524 │
    │ KZT  │ 100     │ 16,7640 │
    │ MDL  │ 10      │ 39,8181 │
    │ NOK  │ 10      │ 72,3823 │
    │ NZD  │ 1       │ 46,5734 │
    │ PLN  │ 1       │ 16,7565 │
    │ QAR  │ 1       │ 20,5244 │
    │ RON  │ 1       │ 16,1333 │
    │ RSD  │ 100     │ 67,8622 │
    │ SEK  │ 10      │ 72,2507 │
    │ SGD  │ 1       │ 55,7819 │
    │ THB  │ 10      │ 21,5775 │
    │ TJS  │ 10      │ 69,2908 │
    │ TMT  │ 1       │ 21,3453 │
    │ TRY  │ 10      │ 39,6051 │
    │ UAH  │ 10      │ 20,2313 │
    │ USD  │ 1       │ 74,7087 │
    │ UZS  │ 10000   │ 66,0995 │
    │ VND  │ 10000   │ 31,6013 │
    │ XDR  │ 1       │ 99,6569 │
    │ ZAR  │ 10      │ 40,6808 │
    └──────┴─────────┴─────────┘


    ну или конкретно для указанных валют
    $ curl -s "http://www.cbr.ru/scripts/XML_daily.asp" | enconv -x UTF-8 | xq -r '.ValCurs.Valute[] | select(.CharCode == "USD" or .CharCode == "EUR") |.CharCode + " " + .Nominal + " " + .Value' | awk 'BEGIN{print "Code Nominal Value"}{print}' | csview -d' '
    ┌──────┬─────────┬─────────┐
    │ Code │ Nominal │ Value   │
    ├──────┼─────────┼─────────┤
    │ EUR  │ 1       │ 79,5716 │
    │ USD  │ 1       │ 74,7087 │
    └──────┴─────────┴─────────┘
    Ответ написан
    3 комментария
  • Как вернуться к процессу, запущенному через ssh?

    @AlexVWill
    Можешь запускать его в виде
    nohup mycode.sh &
    Тогда процесс будет работать даже при отключении ssh сессии от сервера и вывод процесса будет в nohup.out файл.
    Ответ написан
    2 комментария
  • Как сделать пробел в терминале VS code?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Точно так же как и в любой другой консоли: использовать кавычки или экранирование.
    Ответ написан
    Комментировать
  • Как сделать пробел в терминале VS code?

    набираем cd, затем первые буквы имени папки и нажимаем tab. сработает автодополнение
    в линукс это выглядит так
    cd Рабочий\ стол/
    как в винде не могу проверить
    Ответ написан
    Комментировать