Ответы пользователя по тегу grep
  • Как заGREPовать сразу несколько параметров?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Как сделать, что бы вывод был именно по 3м нужным параметрам?

    dmidecode -t memory | grep -P "Speed|Factor|Size"

    Как это можно форматнуть, что бы вывод был по каждой планке отдельно???

    dmidecode -t memory | awk '/\tSize/{print ""}/Speed|Factor|Size/'


    В идеале хотелось бы получить ... memory 1 ...

    dmidecode -t memory | awk '/\tSize/{i++;print "memory "i}/\tSpeed|Factor|\tSize/'


    Как структурировать вывод :
    A=`cat /proc/cpuinfo | grep "cpu MHz"`
    echo $A

    просто добавь воды, то есть кавычек при выводе:
    echo "$A"

    И как это сделать в несколько столбиков, потому что 104 строки не умещаются в терминал tmux????

    это уже третий вопрос, не нужно здесь устраивать марафон всевозможных вопросов, задавайте каждый вопрос отдельно
    Ответ написан
    1 комментарий
  • Как искать вхождения из списка фраз в linux?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    grep -f файл1 файл2
    файл1 - "В одном файле список слов."
    файл2 - "Во втором большой список строк."

    man grep
    -f FILE, --file=FILE
    Obtain patterns from FILE, one per line. If this option is used multiple times or is combined with the -e (--regexp) option, search for all patterns given. The empty file contains zero patterns, and therefore matches nothing.
    Ответ написан
    Комментировать
  • Как найти строку в текстовом файле с помощью grep?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Да, поиск по json

    если у вас файл json типа такого:
    file.json
    [
    {"id": "5644561-46484-546545" , "number": "879876-5644561-546545" ,"reestr":"46878-6214-8794"},
    {"id": "6644561-46484-546545" , "number": "979876-5644561-546545" ,"reestr":"56878-6214-8794"},
    {"id": "7644561-46484-546545" , "number": "079876-5644561-546545" ,"reestr":"66878-6214-8794"}
    ]


    то там довольно всё просто делается используя консольную утилиту jq:
    $ jq -r '.[] | "\(.id): \(.reestr)"' file.json
    5644561-46484-546545: 46878-6214-8794
    6644561-46484-546545: 56878-6214-8794
    7644561-46484-546545: 66878-6214-8794


    если нужен конкретный id:
    $ jq -r '.[] | select(.id == "7644561-46484-546545") | "\(.id): \(.reestr)"' file.json
    7644561-46484-546545: 66878-6214-8794


    ну или через внешнюю переменную:
    $ jq -r --arg ID "7644561-46484-546545" '.[] | select(.id == $ID) | "\(.id): \(.reestr)"' file.json
    7644561-46484-546545: 66878-6214-8794
    Ответ написан
    Комментировать
  • Парсинг файла bash?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    В скрипте bash я создаю переменную которая вытаскивает из этой строки S4BZJ045 следующим образом:
    SystemName=$(cat server_out.db | grep 'SystemName' | awk '{print $2}' )

    слишком многословная команда, можно сократить:
    SystemName=$(awk '/SystemName/{printf $2}' server_out.db)


    В ответ получаю NotOK, я понимаю, что проблема в лишних символах в переменной SystemName. Проверял через WC:

    скорее всего проблема в переводе строки, print в конце ставит \n, чтобы этого избежать используйте printf
    Ответ написан
    1 комментарий
  • Как из /var/log/pacman.log получить названия пакетов?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Структура файла примерно такая:

    там структура лог пакмана немного сложнее чем вы представили

    Нужно с помощью bash достать список пакетов из файла /var/log/pacman.log

    список пакетов каких ?
    установленных когда либо, удалённых или тех что конкретно сейчас установлены в системе ?
    установленных из подключенных реп, аура или всех сразу ?
    если последнее то будет примерно такое:
    awk '$4=="installed" || $4=="removed" {print i++,$4,$5}' /var/log/pacman.log |sort -k3 -k1n |sed '$a\\' |awk '{if (a=="installed" && b!=$3) print b;a=$2;b=$3}' > packages.all.txt

    подробнее смотри тут в разделе Создание списка пакетов для восстановления
    Ответ написан
    Комментировать
  • Как забрать переменные php в используя bash?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    awk -F'[",'"'"']' '/DBLogin =/ {print $2}' bconn.php
    Ответ написан
    Комментировать
  • Как выкусить подстроку из строки?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    если " STRING-" и " PON " являются определяющими то можно сделать так:

    $ awk -F" STRING-| PON " '{print "STRING-"$2" PON "$3 }' | awk '{print $1" "$2" "$3}'  fileIn >> fileOut
    Ответ написан
    1 комментарий
  • Как скопировать строки по маске в новый файл целиком?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    предлагаю поставить gawk (gnu awk) и не мучатся :)
    если убунту то смотри здесь - https://www.howtoinstall.co/en/ubuntu/trusty/gawk

    тогда достаточно будет просто убрать вывод конкретного столбца заменив print $N на просто print:
    $ head -n1 pro3.csv > proOUT.csv
    $ awk -v N=1 -F"," '$N ~ /^[0-9]{11}$/ {print}' pro3.csv >> proOUT.csv
    Ответ написан
    4 комментария
  • Как удалить из файл одинаковые ip адреса?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    awk -F: '{print $1}' access.log |uniq -u
    Ответ написан
    Комментировать