Извлеките несколько столбцов из вывода grep

[112508]Я нашёл нелепый способ сделать это, используя предложение Ориона. Предположим, что [112870]$svg_file_name[112871] - это переменная, содержащая путь к SVG-изображению.

Сначала нам нужна ширина и высота изображения

PlantUML создает диаграмму как одну группу (тег [112872][112873]), давайте поместим прямоугольник размером с холст поверх этой группы

Теперь откройте изображение с помощью inkscape, выберите все и закрепите группу прямоугольником

С последним Inkscape нужно выйти из Inkscape вместо закрытия файла

1
19.05.2015, 18:17
2 ответа

Вы могли бы использовать awk , по крайней мере, на месте второго GREP ? Что-то вроде

grep -a --binary-file=text "DLDM" /home/path/ldm.log-$1* |  awk -F, "/$line/ {print \$2 \",\" \$9 \",\" \$10 \",\" \$11 \",META\"}"

Обратите внимание, что все сбежание, чтобы вы могли использовать $ LINE в шаблоне в шаблоне, если вам не нужно, чтобы она была переменной, вы можете использовать отдельные цитаты для внешних кавычек и игнорируют большую часть Интерьер цитирует.

Для замены строковой валюты металлическими изменением awk будет следующим образом:

grep -a --binary-file=text "DLDM" /home/path/ldm.log-$1* | awk -F, "/$line/ {gsub(\"CURRENCY\", \"META\", \$26);print \$2 \",\" \$9 \",\" \$10 \",\" \$11 \",\" \$26}"
3
27.01.2020, 23:27

Использование Резак Для извлечения необходимых столбцов (предоставление номеров столбцов для нас было бы добротой), и SED для изменения текста:

grep ... | cut -d, -f2,9,10,11,26 | sed -e 's/CURRENCY/META/' -e 's/"//g'

выходов

20150518 11:36:09,7A104802E728,4529800000,123456789,META

Еще один подход, поскольку ваши входные данные выглядят как хорошо сформированные CSV (игнорируя часть перед первой толстой кишки), должен использовать язык с надлежащим парсером CSV

grep ... | ruby -rcsv -ne '
    csv_text = $_[/(?<=:).+/]           # ignore up to the first colon
    row = CSV.parse_line csv_text       # parse
    out = row.values_at(1,8,9,10,25)    # extract your fields
    out[-1]["CURRENCY"] = "META"        # text replacement of last field
    puts CSV.generate_line out          # output                       
'
0
27.01.2020, 23:27

Теги

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