Processo de cópia imprime poucas linhas em um arquivo

0

Eu quero copiar a saída do xinput-calibrator para o arquivo temp.txt do meu aplicativo Qt.

Estou iniciando o QProcess do aplicativo

Usando o comando xinput_calibrator | tee log.txt , posso copiar o texto completo, mas preciso salvar apenas algumas linhas da saída no arquivo

Abaixo está a saída do 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

Só preciso copiar as últimas 5 linhas para o arquivo temp.txt

    
por tharunkumar 30.03.2016 / 07:40

1 resposta

2

Como @skwllsp mencionou que seu problema pode ser resolvido com xinput_calibrator | tail -n 5 | tee log.txt . No entanto, posso perguntar por que você está usando tee para conseguir isso?

The tee utility copies standard input to standard output, making a copy in zero or more files. The output is unbuffered.

O propósito de tee é escrever saída para arquivos e manter o pipe indo para o próximo comando.

Se você quiser enviar sua saída para um arquivo, poderá fazê-lo com > ou >> .

xinput_calibrator | tail -n 5 > log.txt

Isso criaria log.txt se ele não existir, ou truncá-lo para nada se já existir e gravar a saída no arquivo.

xinput_calibrator | tail -n 5 >> log.txt

Isso acrescentaria ao arquivo, para que os dados anteriores não sejam removidos. (Ele irá criar o arquivo se ele não existir).

Leitura adicional:

por 30.03.2016 / 14:11