Pular para o conteúdo

Transformar o resultado de um comando em uma variável

Responder tópico
  • Denunciar
  • Indicar

1. Transformar o resultado de um comando em uma variável

Enviado em 10/02/2018 - 18:34h

Preciso encontrar uma maneira de transformar o resultado de um comando em uma variável, veja o meu caso.
--
$ mkvmerge -i filme.mkv | grep "audio"
=> Abaixo é o resultado.
ID da faixa 0: audio (AAC)
ID da faixa 3: audio (AAC)
--
No caso, eu queria pegar os números que estão após "ID da faixa" e transformá-los em variáveis para usá-las em outro comando. De qualquer forma, acrescentei este comando para pegar somente números que preciso: mkvmerge -i filme.mkv |grep "audio" | cut -d ' ' -f4 | sed s/://
0
3
--
Eu gostaria de pôr estes valores neste comando abaixo no lugar das letras em maiúsculo. O número do "map" será equivalente à quantidade de número encontrados.

ffmpeg -i filme.mp4 -map 0:X -map 0:Y -map 0: ...

Agradecido por qualquer ajuda.

Responder tópico

2. Re: Transformar o resultado de um comando em uma variável

Enviado em 10/02/2018 - 18:51h

angrasbss escreveu:

Preciso encontrar uma maneira de transformar o resultado de um comando em uma variável, veja o meu caso.
--
$ mkvmerge -i filme.mkv | grep "audio"
=> Abaixo é o resultado.
ID da faixa 0: audio (AAC)
ID da faixa 3: audio (AAC)
--
No caso, eu queria pegar os números que estão após "ID da faixa" e transformá-los em variáveis para usá-las em outro comando. De qualquer forma, acrescentei este comando para pegar somente números que preciso: mkvmerge -i filme.mkv |grep "audio" | cut -d ' ' -f4 | sed s/://
0
3
--
Eu gostaria de pôr estes valores neste comando abaixo no lugar das letras em maiúsculo. O número do "map" será equivalente à quantidade de número encontrados.

ffmpeg -i filme.mp4 -map 0:X -map 0:Y -map 0: ...

Agradecido por qualquer ajuda.


coloque o comando entre crase

variavel=`mkvmerge -i filme.mkv |grep "audio" | cut -d ' ' -f4 | sed s/://`
echo $variavel


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------

4. Re: Transformar o resultado de um comando em uma variável

Enviado em 11/02/2018 - 11:58h

Este comando `mkvmerge -i filme.mkv |grep "audio" | cut -d ' ' -f4 | sed s/://` mostra a posição de todos os áudios, no caso, aparece 0 e 3 na mesma linha, eu queria que o 0 e o 3 fossem usados em parâmetros diferentes e separados, e jogados para dentro de um outro comando, assim:

ffmpeg -i filme.mkv -map 0:0 -map 0:3

5. Re: Transformar o resultado de um comando em uma variável

Enviado em 11/02/2018 - 12:20h

angrasbss escreveu:

Este comando `mkvmerge -i filme.mkv |grep "audio" | cut -d ' ' -f4 | sed s/://` mostra a posição de todos os áudios, no caso, aparece 0 e 3 na mesma linha, eu queria que o 0 e o 3 fossem usados em parâmetros diferentes e separados, e jogados para dentro de um outro comando, assim:

ffmpeg -i filme.mkv -map 0:0 -map 0:3


jovem .. eu não consigo rodar esse comando aqui ... logo eu não sei toda a saída desse comando ... então no mínimo explica isso aí nos mínimos detalhes ... vc diz que quer isolar um 0 ... porém existe 3 zeros nessa saída ... aí complica né ???

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------

6. Re: Transformar o resultado de um comando em uma variável

Enviado em 11/02/2018 - 12:47h

É assim, quando você dá o comando mkvmerge -i <arquivo de vídeo>, ele dará as posições das faixas de áudio, vídeo e legendas. No meu caso, quando dou este comando no arquivo filme.mkv, ele dá a seguinte informação:

ID da faixa 0: audio (MP3)
ID da faixa 1: subtitles (SubRip/SRT)
ID da faixa 2: video (MPEG-4p10/AVC/h.264)
ID da faixa 3: audio (AAC)
ID da faixa 4: subtitles (SubRip/SRT)

O que me interessa é o número que vem após "ID da faixa", que é a localização da faixa que desejo. No caso, eu só quero os números das localizações das faixas de áudio, que é 0 e 3. Neste contexto, para pegar estes dados, realizo o seguinte comando:

angrasbss@HPavilion ~/Downloads/testes $ mkvmerge -i filme.mkv |grep "audio"
ID da faixa 0: audio (MP3)
ID da faixa 3: audio (AAC)

Como eu só quero os números das localizações, faço o seguinte comando:

angrasbss@HPavilion ~/Downloads/testes $ mkvmerge -i filme.mkv |grep "audio" | cut -d ' ' -f4 | sed s/://
0
3

Uma vez que consigo somente estes números, preciso que eles se tornem variáveis e sejam inseridos em outro comando desta forma:
ffmpeg -i <arquivo de vídeo> -map 0:<número da localização do áudio X> -map 0:<número da localização do áudio Y>

E assim sucessivamente enquanto houver faixas de áudios.

Em suma, preciso que leia todas as informações do arquivo apontado, reconheça quais as faixas de áudio e insira os números das faixas de áudio em parâmetros de outro comando.

Espero ter conseguido explicar melhor.
Obrigado pela atenção.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder