我正在尝试使用此命令监视主题更改:
dbus-monitor --session "interface='org.freedesktop.portal.Settings', member=SettingChanged" | grep -o "uint32 ."
。现在的输出如下所示:
uint32 0
uint32 0
uint32 1
uint32 1
uint32 0
uint32 0
uint32 1
uint32 1
此输出来自主题切换。由于某种原因,主题通知出现了两次。现在我想将它通过管道传输到uniq
,所以我只保留一个条目,如下所示:
uint32 0
uint32 1
uint32 0
uint32 1
uniq
但是,最后
追加不再产生任何输出。dbus-monitor --session "interface='org.freedesktop.portal.Settings', member=SettingChanged" | grep -o "uint32 ." | uniq
来自man uniq
:
从 INPUT(或标准输入)中过滤相邻的匹配行,写入 OUTPUT(或标准输出)。
uniq
至少需要缓冲最后一条输出线才能检测到相邻的线,我看不出有任何理由不能缓冲它并沿着管道传递它。我已经尝试按照此处的建议调整行缓冲,但结果对我来说仍然相同。
dbus-monitor --session "interface='org.freedesktop.portal.Settings', member=SettingChanged" | grep -o "uint32 ." | stdbuf -oL -i0 uniq