Gravar a saída do comando no arquivo sem usar o redirecionamento [closed]

2

Eu tenho que escrever um pequeno script que escreve algumas informações em um arquivo. No entanto, o script será chamado de um local que não suporta operadores de redirecionamento (RTM). Desde que eu não posso usar os operadores de redirecionamento. Eu tentei algo como:

#!/bin/bash
busers_var=$(busers -w name)
sed -i 'T a/"$busers_var"' alert.out

Eu recebo o erro:

sed: can't find label for jump to 'a/"$busers_var"'

Ou se eu usar:

sed -i "T a/$busers_var" alert.out

Eu recebo:

sed: -e expression #1, char 25: unknown command: 'J'

Alguma ideia?

    
por Edana 17.08.2017 / 21:01

1 resposta

5

Se busers -w name for o comando em questão, tente tee :

busers -w name | tee /path/to/output

Talvez adicionando o stderr:

busers -w name 2>&1 | tee /path/to/output

Ou use ed :

touch output; ed -s output <<< $'r !busers -w name\nwq'

Ou use sort para "mesclar arquivos já classificados; não classificar", combinado com sua opção -o output :

buser -w name | sort -m -o output
    
por 17.08.2017 / 21:05