Tente adicionar echo -n
stdbuf -o0 xinput test 11 | xargs echo -n > out
Atualizar
Como eu entendo do seu comentário, você não quer apenas remover o avanço de linha, mas também o log de saída em cada tecla usando xinput.
Primeiro, verifique todos os dispositivos de entrada:
c0rp@c0rp:~$ xinput --list
Esta é uma lista de todos os dispositivos de entrada disponíveis
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ETPS/2 Elantech Touchpad id=13 [slave pointer (2)]
⎜ ↳ RAPOO RAPOO 2.4G Wireless Device id=10 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Video Bus id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Asus WMI hotkeys id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
↳ RAPOO RAPOO 2.4G Wireless Device id=14 [slave keyboard (3)]
↳ USB2.0 HD UVC WebCam id=15 [slave keyboard (3)]
Agora, se você quiser testar o dispositivo, use test
key e, como parâmetro, use id na segunda coluna.
Por exemplo, eu uso o teclado sem fio, id = 14:
xinput --test 14
Aqui está a saída:
key press 42
key press 43
key release 43
key release 42
key press 44
E finalmente o que você quer é ...
Desculpe, nesta etapa eu percebo que xinput não pode redirecionar stdout ou stderr, apenas buffered. Prova de link .
Portanto, a única maneira de fazer o que você deseja usando xinput
é:
Escreva xinput em um arquivo xinput test 11 > out
e substitua todas as novas linhas usando tr
tr -d '\n' < yourfile.txt
ou se não funcionar, use o mesmo para finais de linha DOS / Windows
tr -d "\n\r" < yourfile.txt