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