Passando o conteúdo do arquivo pelo nome do arquivo com comandos

1

Eu tenho um programa que normalmente leva um nome de arquivo como entrada para um arquivo para ler, mas, em vez disso, para fins de script, eu quero passar o conteúdo do arquivo como um parâmetro. Eu não posso re escrever o programa para ler o texto da linha de comando. Existe uma maneira de passar o conteúdo como texto via linha de comando? O arquivo é um arquivo binário.

Ex: prog arquivo.txt -p 0

    
por user79067 21.04.2011 / 08:02

3 respostas

2

Se você usa bash , pode usar o recurso de substituição do processo ( <() ), por exemplo:

prog <(echo $SOME_DATA) -p 0
    
por 21.04.2011 / 08:13
2

Aqui está outra maneira de fazer isso no linux:

$ cat $SOME_DATA | prog /dev/stdin -p 0

neste caso, você está esguichando os dados para STDIN por prog e, em seguida, lendo a partir de STDIN através do dispositivo especial /dev/stdin . Observe que /dev/fd/1 é equivalente.

    
por 21.04.2011 / 08:47
-1

Não tenho certeza se essas outras respostas estão corretas ou funcionarão.

O padrão é usar - para representar STDIN. Quando você programa analisa seus argumentos ARGV e tenta abrir o arquivo, ele irá mapear para o arquivo STDIN.

cat $SOME_DATA | prog -p 0 -
    
por 21.04.2011 / 09:02

Tags