Как использовать sed для управления непрерывно выводом потоковой передачи?

Я нашел этот thread:https://superuser.com/questions/155855/mouse-button-gets-stuck-down-in-vmware-guest-os

Хотя я не мог найти эти настройки в vmplayer, еще некоторое рытье, и я зафиксировал его путем изменения настроек VMware в C:\Users\me\AppData\Roaming\VMware\preferences.ini

путем добавления

pref.motionGrab = "FALSE"
pref.motionUngrab = "FALSE"

В основном существует проблема с автонезахватом мыши, когда мышь оставляет VM. Это делает его так, Вы не можете убрать мышь, если Вы не поражаете сочетание клавиш незахвата (ctrl + высокий звук на окнах по умолчанию). Кажется, работает до сих пор.


В то время как это было полезным изменением и, казалось, работало, получил ошибку снова после дня.

Это - мое последнее решение, от Debian Сожмите: Нажатие левой кнопки мышки прекращает работать

Щелкните правой кнопкой по работам, поэтому щелкните правой кнопкой по ярлыку Terminal. Мышь при наведении курсора по "открытому", и хит входит (работы клавиатуры). Введите:

modprobe -r psmouse
modprobe psmouse

И это, кажется, восстанавливает мышь. Не знайте то, что вызывает его. Существует упоминание о Xorg... Мне установили его... не знают, что сделать, хотя удостовериться, что это работает. Это - мое временное решение, но если кто-либо знает что-либо лучше сообщенное мне.

13
05.05.2015, 01:42
4 ответа

Мой первый комментарий - все то, что вы считаете, будет работать только в том случае, если файловая система на интересующем вас устройстве установлена. Но я думаю, вы знаете это и принимаете это ограничение.

Метод, который вы предлагаете, кажется довольно тщательным, и я думаю, что он уловит все случаи.

Сведения о поиске ip в /sys/dev/block :

  • Вы не ищете < maj >: 0 , как указано. Вы ищете < мажор >: < минор > .
  • Будьте готовы к делу, где вы его не найдете. Некоторые файловые системы, такие как /proc , и типы tmpfs и nfs не имеют связанных устройств. Вы захотите игнорировать их, так как они не могут соответствовать интересующему вас блочному устройству.

При поиске имени устройства не сканируйте /sys/dev/block/< major >: < minor >/uevent . Вместо readlink () на /sys/dev/block/< major >: < minor > и возьмите базовое имя результата. Вы должны получить тот же результат, но он немного чище и эффективнее.

Если требуется найти несколько устройств, необходимо отсканировать /proc/mounts и выполнить полный поиск /sys только один раз и кэшировать результаты следующего поиска устройств.

Отсутствует системный вызов show _ me _ mounts () . В Linux для этого используется /proc/mounts . Но, как вы заметили, это не идеально. Как правило, проблема виртуальной/несуществующей /dev/root отсутствует, хотя при полной современной загрузке на основе initramfs.

Отредактируйте в соответствии с требованиями поиска всего диска, соответствующего каждому разделу.

Для получения «внешнего» блочного устройства (= всего диска), которому присвоено «внутреннее» блочное устройство (= раздел), нельзя просто изменить номер второстепенного устройства на 0.

Правильный способ сделать это, если вы нашли основные 8 и минорные 1, это посмотреть в этом файле:

/sys/dev/block/8:1/../dev

Это приведет к 8:0 , но без неправильного предположения, что минорный идентификатор устройства всегда можно переключить на 0.

При попытке ENOENT открыть это происходит потому, что рассматриваемый тип блочного устройства не имеет внутренней/внешней иерархии или идентификатор второстепенного устройства не соответствует внутреннему устройству.

-121--111566-

Я вижу, что вы цитируете мой ответ. Можете ли вы (а) дать некоторые подробности о том, что вы пытались сделать (б) что произошло, когда вы сделали это, пожалуйста? В частности, какой источник использовался в /etc/apt/sources.list ? Как указано в документации по http://cran.stat.ucla.edu/bin/linux/ubuntu/ , следует использовать

deb http://<my.favorite.cran.mirror>/bin/linux/ubuntu trusty/ 

, например,

http://cran.stat.ucla.edu/bin/linux/ubuntu trusty/

.

-121--185891-

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

Чтобы заставить команду не выполнять буферизацию, можно использовать unbuffer (из ожидания) или stdbuf (из coreutils GNU).

unbuffer command | sed …
stdbuf -o0 command | sed …
12
27.01.2020, 19:53

, поэтому я закончил установку LILO в качестве загрузчика, который работает просто отлично. Это вроде подтверждает теорию, что может быть что-то не так с более новыми версиями GRUB.

Вот инструкции по установке:

сначала удалить загрузчик GRUB:

sudo pacman -Rsn grub

для установки пакетов, которые не указаны в Arch Repo по умолчанию, нам нужны инструменты разработки:

sudo pacman -S base-devel

Теперь загрузить брезенту из здесь и извлеките его с помощью:

tar -xf lilo.tar.gz

Теперь CD в вновь созданный каталог и установите LILO, используя:

sudo makepkg -sci

Отредактируйте файл конфигурации LILO, чтобы все указывали на правильный диск и разделы (проверьте разделы с Sudo FDISK - л . Также проверьте это для справки.

sudo nano /etc/lilo.conf

Наконец установите LILO на диск с помощью:

sudo lilo

Не забудьте запустить последнюю команду после каждого обновления ядра!

Это может быть не фактический ответ на мой вопрос, но, по крайней мере, он решает проблему, с которой я пытался справиться. Я думаю, что могу помочь другим людям с этим, и поэтому я отмечаю это как ответ. Пожалуйста, не стесняйтесь публиковать более возможные решения. Если у меня есть свободное время, я попробую их.

-121--244141-

Способ Perl:

command | perl -pe 's/(stuff)/\x1b[1m$1\x1b[0m/g'

или с непрерывной выходом:

скрипт Bash для выхода :

#!/bin/bash
while [ true ]
do
   echo "Some stuff"
done

Тест с:

./cont | perl -pe 's/(stuff)/\x1b[1m${1}\x1b[0m/g'
  • \ X1B [1M - жирная или повышенная интенсивность
  • $ {1} - backreferenze
  • \ x1b [0m - Сброс всех атрибутов

Вывод:

Некоторые Материалы
Некоторые Материалы
Некоторые Материалы
Некоторые Материалы

Больше бегающих кодов здесь .

1
27.01.2020, 19:53

Я бы использовал awk

  command | awk '/some important stuff/ { printf "%c[31m%s%c[0m\n",27,$0,27 ; next }
  { print ; } '

где

  • /некоторые важные вещи/ выбирают важную строку, как в sed
  • printf "%c[31m%s%sc[0m\n",27,$0,27 ; выводит красным цветом
    • используйте 32,33 для зеленого, желтого...
    • $1, $2, можно использовать для выбора конкретного поля
  • другая строка просто печатается "как есть"

ключевым моментом является то, что команда команда должна промывать строки, но это должно быть так, если у вас есть много вывода.

2
27.01.2020, 19:53

Невозможно обновить или удалить файлы из твердотельного сжатия. При сплошном сжатии сжатие последующих данных зависит от статистического анализа предыдущих данных (что обычно обеспечивает лучшую точную настройку сжатия статистического анализа входных данных), поэтому удаление файлов требует отмены сжатия и повторного сжатия всего архива, содержащего файлы.

Также важно понимать, что сплошное сжатие обычно используется там, где вы хотите сэкономить диск/полосу пропускания, но не обращайте внимания на дополнительное время, необходимое для сжатия или декомпрессии и ослабления гибкости обновления или редактирования. существуют другие инструменты, которые обеспечивают возможность быстрого сжатия/декомпрессии, включая обновление существующего архива, но тогда степень сжатия не совпадает с твердым сжатием.

Сжатие твердого тела, которое вы ссылаетесь на "tar.xz", является "эмулированным" сжатием твердого тела "

При вычислениях сжатие твердого тела относится к методу для данных сжатие нескольких файлов, при этом все несжатые файлы конкатенированный и обрабатываемый как единый блок данных. Такой архив есть называется солидным архивом. Используется в 7z [1] и RAR [2] форматы, а также косвенно в форматах на основе смолы, таких как .tar.gz и .tar.bz2. В отличие от этого формат ZIP не является сплошным, поскольку хранит отдельные сжатые файлы (хотя сплошное сжатие может быть эмулировано для небольших архивов путем объединения файлов в несжатый архив застежки -молнии с последующим сжатием архива застежки -молнии внутри второй сжатая застежка -молния).

Позвольте мне начать с объяснения того, как работает ваш используемый в настоящее время метод tar.xz.

tar

В вычислениях tar - это компьютерная утилита программного обеспечения для сбора многих файлы в один архивный файл, часто называемый тарболом

Следовательно, Tar в основном является архивом.

xz

xz - это программа сжатия данных без потерь и формат файла, который включает в себя алгоритмы сжатия LZMA/LZMA2. он имеет высокую степень сжатия, однако медленные времена сжатия и декомпрессии.

Поэтому при объединении этих двух файлов сначала выполняется архивация (tar) нескольких файлов, а затем сжатие (xz) одного файла.

Теперь по вопросу о том, как можно добавить новое содержимое/обновить существующий сжатый файл.

Если вы используете tar.xz, вам придется распаковать tar.xz, который оставит вас с tar файл, а затем вы можете использовать следующее для добавления архива.

tar --append --file=archive.tar file_or_dir_to_add

и затем снова сжать его.

xz archive.tar

Также можно использовать ЗАСТЕЖКА -МОЛНИЯ.

zip -g archive.zip folder/file

ЗАСТЕЖКА -МОЛНИЯ - это формат архивного файла, поддерживающий сжатие данных без потерь. A. ЗАСТЕЖКА -МОЛНИЯ файл может содержать один или несколько файлов или каталогов, которые могут иметь был сжат. Формат .ZIP-файла допускает некоторое сжатие алгоритмы, хотя DEFLATE является наиболее распространенным.

-121--85827-

sed имеет для этого опцию:

-u, --unbuffered

, которая загружает минимальные объемы данных из входных файлов и чаще сбрасывает выходные буферы. Для получения дополнительной информации см. man sed .

4
27.01.2020, 19:53

Теги

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