Criar conteúdo TXT apartir de arquivos dentro de pastas. [RESOLVIDO]

1. Criar conteúdo TXT apartir de arquivos dentro de pastas. [RESOLVIDO]

elison
genlicos

(usa Linux Mint)

Enviado em 23/01/2016 - 18:18h

Boa tarde a todos,
1) Possuo uma pasta de vídeo que se encontra em /home/elison/Vídeos/Religiosos.
2) Dentro dessa pasta existem arquivos de vídeo (.avi e .mp4) nomeados no padrão nome_artista_-_nome_da_musica.mp4.

Ex:
quatro_por_um_-_então_é_só_clamar.mp4

3)Preciso construir um arquivo TXT, que contivesse essas informações desses vídeos, na seguinte estrutura.

NAME=Nome da Música; URL=http://192.168.1.2/nome_do_arquivo.mp4;

Ex acima:
NAME=Então É Só Clamar; URL=http://192.168.1.2/quatro_por_um_-_então_é_só_clamar.mp4;

Me ajudem!!!


  


2. MELHOR RESPOSTA

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 26/01/2016 - 13:58h

Olá,

Juntando o script do Renan + as suas modificações + seu ultimo pedido:

#!/bin/bash

# Extensões a serem buscadas
ext=("mp4" "avi" "mkv")

#Limite de linhas por arquivo
limite=50

echo "aguarde criando lista"

#loop
for i in $(for arq in ${ext[*]}; do find . -type f -iname "*.$arq";done)
do
nome=$(echo $i | awk -F"-" '{print $2}' | tr _ " " | sed 's/^ //' | awk -F"." '{print $1}')
echo "NAME=$nome; URL=http://192.168.1.2/$i" >> lista.txt
echo -n "."
done

#Dividindo o arquivo
split -l $limite -d lista.txt lista_ --additional-suffix=.txt

# inserindo a linha Tocom...
sed -i '1i\[Tocom_URL_LIST]' lista_*

echo -e "\nA matriz Lista.txt foi criada e divida em listas de até $limite linhas. São elas:\n\n$(ls lista_*)\n\n"


Espero que ajude.

abs,


---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---

3. Re: Criar conteúdo TXT apartir de arquivos dentro de pastas.

Renan Arantes
R3nan

(usa Debian)

Enviado em 23/01/2016 - 20:29h

boa noite amigo, salve o script na pasta que vc tem os videos, ele ira criar o TXT e execute-o sera criado um arquivo chamado lista.txt ok


#!/bin/bash
lista=$(ls *.mp4 *.avi)
echo "aguarde criando lista"
for i in $lista; do
nome=$(echo $i | awk -F"-" '{print $2}' | tr _ " " | sed 's/^ //' | awk -F"." '{print $1}')
echo "NAME=$nome; URL=http://192.168.1.2/$i" >> lista.txt
echo -n "."
done

echo "concluido com susseo \n foi criado o arquivo lista.txt"


espero ter colaborado

Abraços
R3nan


4. Perfeito, ajudou muito...

elison
genlicos

(usa Linux Mint)

Enviado em 23/01/2016 - 21:03h

R3nan escreveu:

boa noite amigo, salve o script na pasta que vc tem os videos, ele ira criar o TXT e execute-o sera criado um arquivo chamado lista.txt ok


#!/bin/bash
lista=$(ls *.mp4 *.avi)
echo "aguarde criando lista"
for i in $lista; do
nome=$(echo $i | awk -F"-" '{print $2}' | tr _ " " | sed 's/^ //' | awk -F"." '{print $1}')
echo "NAME=$nome; URL=http://192.168.1.2/$i" >> lista.txt
echo -n "."
done

echo "concluido com susseo \n foi criado o arquivo lista.txt"


espero ter colaborado

Abraços
R3nan


Gostaria de ter a metade de sua inteligencia meu amigo, fez em minutos o que eu estava dias tentando rsrsrsrrs. Deus ajude e guarde vc e sua família!


5. Re: Criar conteúdo TXT apartir de arquivos dentro de pastas.

Renan Arantes
R3nan

(usa Debian)

Enviado em 23/01/2016 - 22:17h

amém! eu não sei quase nd, estou aprendendo tb, um abraço, marque o topico como resolvido e selecione a melhor resposta ate+ fica com Deus


6. Só mais uma coisinha

elison
genlicos

(usa Linux Mint)

Enviado em 24/01/2016 - 00:29h

R3nan escreveu:

amém! eu não sei quase nd, estou aprendendo tb, um abraço, marque o topico como resolvido e selecione a melhor resposta ate+ fica com Deus


Tinha ocasiões que eu precisava buscar dentro de subpastas, acrescentei também a extensão MKV, resolvi da seguinte forma, veja se vc concorda.

#!/bin/bash
lista=$(find * -name "*.mp4" && find * -name "*.avi" && find * -name "*.mkv")
echo "aguarde criando lista"
for i in $lista; do
nome=$(echo $i | awk -F"-" '{print $2}' | tr _ " " | sed 's/^ //' | awk -F"." '{print $1}')
echo "NAME=$nome; URL=http://192.168.1.2/$i" >> lista.txt
echo -n "."
done

echo "concluido com susseo \n foi criado o arquivo lista.txt"

Vc faria como?


7. Re: Criar conteúdo TXT apartir de arquivos dentro de pastas. [RESOLVIDO]

Renan Arantes
R3nan

(usa Debian)

Enviado em 24/01/2016 - 11:45h

perfeito, só mudaria o -name para -iname pq ai o find pesquisa deforma case sensitive ou seja tanto faz o nome do arquivo estar em minusculo ou MAIUSCULO, apesar de vc ter dito que os nomes estão em um padrao, uma duvida qual é o nome do software que vc ira usar essa lista txt? acredito eu que seja pra algum tipo de servidor de media correto ?

abraço
R3nan


8. Assistir filmes via IPTV

elison
genlicos

(usa Linux Mint)

Enviado em 24/01/2016 - 14:15h

Possuo um decodificador, Phienix IPTV da Tocomsat, e como essa empresa não fornece o samba em seus aparelhos resolvi assistir meus filmes via IPTV. Essa lista serve para pesquisar todos os filmes organizados em meu servidor (192.168.1.2) onde upando através de um pendriver, nesse padrã solicitado, posso assistir meus filmes via IPTV sem que haja a necessidade de por um HD em meu deco.


9. Re: Criar conteúdo TXT apartir de arquivos dentro de pastas. [RESOLVIDO]

Renan Arantes
R3nan

(usa Debian)

Enviado em 24/01/2016 - 15:18h

entendi... eu tenho um deco azbox premium + um verdadeiro media box e ele roda linux é muito legal a infimidade de coisas que da pra fazer...

ate +


10. Vamos aumentar a dificuldade R3nan?

elison
genlicos

(usa Linux Mint)

Enviado em 26/01/2016 - 10:35h

Do jeito que está o Script ficou muito bom, no entanto, meu nobre amigo :), é gerado uma lista com o números de linhas equivalente ao numero de arquivos de video encontrado. Por exemplo se eu tiver 200 videos dentro da pasta ele me retornará uma lista.txt com 200 linhas e isso não é aceito pelo decoder, pois o mesmo só aceita até 50 arquivos de vídeo (que chato né).

1) Preciso que ao criar a lista separe de 50 em 50 arquivos encontrados. Por exemplo do 001 ao 050 cria a "lista01.txt", do 051 ao 100 cria a "lista02.txt", e assim por diante.

2) Teria, também, como por NA PRIMEIRA linha de cada arquivo "listaXX.txt" criado a seguinte sentença: [Tocom_URL_LIST]

Desde já agradeço e desculpem pelo incomodo, no entanto eu não pergunto nada se já não tenha tentado antes...



11. Valeu mesmo tonyhts e r3nan

elison
genlicos

(usa Linux Mint)

Enviado em 26/01/2016 - 18:15h

1) Agradeço a ajuda inicial de r3nan, e do tonyhts nos ajustes finais, que deixaram o script 100% funcional. Que Deus abençoe vocês.

2) Esse script serve para queles que possuírem um deco TOCOMSAT, qualquer um que rode IPTV, e deseja criar listas IPTV automáticas, a partir de um computador que tenha os vídeos e um servidor web instalado, permitindo então que esse vídeos possam ser acessados pelo decodificador TOCOMSAT via rede.

3) Fiz alguns ajustes no script final para que possa ser usado de forma universal por outras pessoas.
a) remove a lista.txt, no fim da execução, pois a mesma não teria serventia "rm lista.txt".
b) deixe o NOME_DO_VÍDEO maiúsculo por questões estéticas.
c) modifiquei a confecção da variável $nome pra se tornar mais universal o script.

4) Resultado final:
Obs: quem tiver duvida na execução pode entrar em contato.


#!/bin/bash

# Extensões a serem buscadas
ext=("mp4" "avi" "mkv")

#Limite de linhas por arquivo
limite=50

echo "aguarde criando lista"

#loop
for i in $(for arq in ${ext[*]}; do find * -type f -iname "*.$arq";done)
do
nome=$(echo $i | awk -F"/" '{print $NF}' | tr 'a-z' 'A-Z' | awk -F"." '{print $1}')
echo "NAME=$nome; URL=http://192.168.1.2/$i;" >> lista.txt
echo -n "."
done

#Dividindo o arquivo
split -l $limite -d lista.txt lista_ --additional-suffix=.txt

# inserindo a linha Tocom...
sed -i '1i\[Tocom_URL_LIST]' lista_*

# removendo lista.txt
rm lista.txt

echo -e "\nA Criado as listas de até $limite arquivos de vídeos. São elas:\n\n$(ls lista_*)\n\n"



12. Re: Criar conteúdo TXT apartir de arquivos dentro de pastas. [RESOLVIDO]

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 26/01/2016 - 18:18h

Que bom que deu certo!

Não esqueça de marcar o tópico como resolvido.



abs!
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts