Как передача X11 работает?

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

Если Ваши данные попадают в эту "изворотливую" категорию, немного пред, и фильтрация сообщения может заботиться о нем. Фильтры, показанные ниже, требуют символов \x01,\x02,\x03,\x04 не появиться где угодно в Ваших данных.

Вот фильтры, перенес простое awk полевой дамп.

Поле Примечание: пять имеет недопустимое/неполное "заключенное в кавычки поле" расположение, но это мягко в конце строки (в зависимости от синтаксического анализатора CSV). Но, конечно, это вызвало бы проблематичные результаты unexpedted, если бы это должно было быть подкачано далеко от его текущего положения конца строки.

Обновление; user121196 указал на ошибку, когда запятая предшествует запаздывающей кавычке. Вот фиксация.

Данные

cat <<'EOF' >file
field one,"fie,ld,two",field"three","field,\",four","field,five
"15111 N. Hayden Rd., Ste 160,",""
EOF

Код

sed -r 's/^/,/; s/\\"/\x01/g; s/,"([^"]*)"/,\x02\1\x03/g; s/,"/,\x02/; :MC; s/\x02([^\x03]*),([^\x03]*)/\x02\1\x04\2/g; tMC; s/^,// ' file |
  awk -F, '{ for(i=1; i<=NF; i++) printf "%s\n", $i; print NL}' |
    sed -r 's/\x01/\\"/g; s/(\x02|\x03)/"/g; s/\x04/,/g' 

Вывод:

field one
"fie,ld,two"
field"three"
"field,\",four"
"field,five

"15111 N. Hayden Rd., Ste 160,"
""

Вот пред фильтр, расширенный с комментариями.
Фильтр сообщения является просто реверсированием \x01.\x02,\x03,\x04

sed -r '
    s/^/,/                # add a leading comma delimiter
    s/\\"/\x01/g          # obfuscate escaped quotation-mark (\")
    s/,"([^"]*)"/,\x02\1\x03/g    # obfuscate quotation-marks
    s/,"/,\x02/           # when no trailing quote on last field  
    :MC                   # obfuscate commas embedded in quotes
    s/\x02([^\x03]*),([^\x03]*)/\x02\1\x04\2/g
    tMC
    s/^,//                # remove spurious leading delimiter
'
6
23.05.2017, 15:39
2 ответа

Принятие Вас использует OpenGL, GPU должен быть установлен на хосте, куда X-сервер работает. Клиент отправит команды рендеринга на X-сервер, который затем использует в своих интересах GPU для обработки команд рендеринга.

6
27.01.2020, 20:28

Кажется, это немного сложнее (и запутаннее ). Возможно, расчеты игровой графики будут выполняться на стороне сервера (, хотя правильное использование GPU/OpenGL не так ясно, но все, что касается интерфейса, определенно рассчитывается на стороне клиента.

Этот пост объясняет это довольно хорошо:

https://superuser.com/questions/1217280/why-is-x11-forwarding-so-inefficient

0
24.04.2020, 03:32

Теги

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