[112508]Я нашёл нелепый способ сделать это, используя предложение Ориона. Предположим, что [112870]$svg_file_name[112871] - это переменная, содержащая путь к SVG-изображению.
Сначала нам нужна ширина и высота изображения
PlantUML создает диаграмму как одну группу (тег [112872]
Теперь откройте изображение с помощью inkscape, выберите все и закрепите группу прямоугольником
С последним Inkscape нужно выйти из Inkscape вместо закрытия файла
Вы могли бы использовать 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}"
Использование Резак
Для извлечения необходимых столбцов (предоставление номеров столбцов для нас было бы добротой), и 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
'