Estou tentando monitorar alterações de tema usando este comando:
dbus-monitor --session "interface='org.freedesktop.portal.Settings', member=SettingChanged" | grep -o "uint32 ."
. A saída agora se parece com isso:
uint32 0
uint32 0
uint32 1
uint32 1
uint32 0
uint32 0
uint32 1
uint32 1
Esta saída vem da alternância de temas. A notificação do tema aparece duas vezes por algum motivo. Agora eu quero canalizá-lo uniq
para que eu permaneça apenas com uma única entrada assim:
uint32 0
uint32 1
uint32 0
uint32 1
No entanto, anexar uniq
no final não produz mais nenhuma saída.
dbus-monitor --session "interface='org.freedesktop.portal.Settings', member=SettingChanged" | grep -o "uint32 ." | uniq
De man uniq
:
Filtre linhas correspondentes adjacentes de INPUT (ou entrada padrão), gravando em OUTPUT (ou saída padrão).
uniq
precisa armazenar em buffer pelo menos a última linha de saída para poder detectar linhas adjacentes, não vejo nenhuma razão para que ele não possa armazená-lo e passá-lo ao longo do pipeline. Eu tentei ajustar o buffer de linha conforme sugerido aqui , mas os resultados ainda são os mesmos para mim.
dbus-monitor --session "interface='org.freedesktop.portal.Settings', member=SettingChanged" | grep -o "uint32 ." | stdbuf -oL -i0 uniq