提问人:Abdelrahman Essawy 提问时间:10/4/2023 更新时间:10/4/2023 访问量:39
为什么“grep”会更改 swaymsg 输出中的文本格式?[关闭]
Why Does 'grep' Change Text Format in Swaymsg Output? [closed]
问:
我用于过滤输入设备信息,但我注意到它正在更改文本格式。swaymsg -t get_inputs | grep
grep
使用 grep:
$ swaymsg -t get_inputs | grep -i touch
"identifier": "2:7:SynPS\/2_Synaptics_TouchPad",
"name": "SynPS\/2 Synaptics TouchPad",
"type": "touchpad",
不带 grep:
$ swaymsg -t get_inputs
Input device: SynPS/2 Synaptics TouchPad
Type: Touchpad
Identifier: 2:7:SynPS/2_Synaptics_TouchPad
Product ID: 7
Vendor ID: 2
Libinput Send Events: enabled
为什么会出现这种不寻常的行为,有没有办法让“grep”完全保留文本的原样?
答:
1赞
choroba
10/4/2023
#1
不是改变输出,而是.它检测到输出不是终端,并切换到 JSON 输出。尝试指定该选项。grep
swaymsg
--pretty
0赞
Zak
10/4/2023
#2
swaymsg
既是纯“文本”,又是 .它只是默认为纯文本,当是 .json
stdout
tty
man swaymsg
您可以使用以下命令强制纯文本输出-p
您可以使用以下命令强制输出json
-r
当输出到文件或使用工具(例如解析单个组件)时,输出非常有用,在您的情况下,抓取或单独获取而不是必须输出......json
> your_file.json
jq
json
name
type
identifier
awk
评论