为何grep会改变swaymsg输出的文本格式?如何保留原格式?
为什么
swaymsg配合grep后输出格式改变?如何保留原格式? 问题原因
问题的根源不在grep,而是swaymsg的自适应输出行为:
- 当
swaymsg检测到输出目标是终端(直接打印到屏幕)时,会输出人类友好的纯文本格式; - 当输出目标不是终端(比如通过管道传给
grep、写入文件等)时,会自动切换为JSON格式输出。
你看到的两种差异格式,本质是swaymsg的两种输出模式,grep只是触发了模式切换的条件,并非它修改了格式。
解决办法
强制swaymsg输出纯文本格式,无需检测输出目标,只需在命令中添加--pretty参数:
swaymsg -t get_inputs --pretty | grep -i touch
执行后,grep只会筛选包含指定关键词的行,完全保留原纯文本的格式。
内容的提问来源于stack exchange,提问作者Abdelrahman Essawy
相关产品推荐
相关产品推荐

