将进程输出几行复制到文件中

将进程输出几行复制到文件中

我想将 xinput-calibrator 输出从 Qt 应用程序复制到 temp.txt 文件。

我正在从应用程序启动 QProcess

使用该命令xinput_calibrator | tee log.txt,我可以复制完整的文本,但我只需将输出的几行保存到文件中

下面是输出xinput_calibrator

Warning: multiple calibratable devices found, calibrating last one (VirtualBox mouse integration)
use --device to select another one.
Calibrating EVDEV driver for "VirtualBox mouse integration" id=12
    current calibration values (from XInput): min_x=4, max_x=65512 and min_y=-52, max_y=65816

Doing dynamic recalibration:
    Setting new calibration data: 66, 65483, -125, 65584


--> Making the calibration permanent <--
  copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf'
Section "InputClass"
    Identifier  "calibration"
    MatchProduct    "VirtualBox mouse integration"
    Option  "Calibration"   "66 65483 -125 65584"
EndSection

只是我需要将最后 5 行复制到 temp.txt 文件中

答案1

正如 @skwllsp 提到的,你的问题可以通过xinput_calibrator | tail -n 5 | tee log.txt.但是,我可以问一下你为什么要用来tee实现这个目的吗?

tee实用程序将标准输入复制到标准输出,从而在零个或多个文件中进行复制。输出是无缓冲的。

的目的tee是将输出写入文件使管道继续执行下一个命令。

如果您只想将输出发送到文件,可以使用>或来执行此操作>>

xinput_calibrator | tail -n 5 > log.txt

log.txt如果不存在,则会创建,或者将其截断为空如果它已经存在,则将输出写入文件。

xinput_calibrator | tail -n 5 >> log.txt

这将附加到文件中,以便以前的数据不会被删除。 (如果该文件不存在,它将创建该文件。)


进一步阅读:

相关内容