Guardar nome de arquivo em variável. [RESOLVIDO]

1. Guardar nome de arquivo em variável. [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 28/08/2017 - 17:51h

Boa tarde,

Precisando de uma dica como guardar o início do nome de um arquivo em uma variável.

A dificuldade é que não é o nome inteiro, os arquivos tem nomes compostos, e precisam ser copiados so a primeira parte. Por exemplo:

Audiostatik, Beat Herren
Audiodact - Wandering

Então o que preciso guardar na variável é so o primeiro nome. A minha dificuldade e saber como informar ao script que ele deve armazenar o nome até a vírgula ou até o espaço antes do hífen.

Desde já agradeço.


  


2. MELHOR RESPOSTA

Luan Santana
lsantana.feijao

(usa Arch Linux)

Enviado em 28/08/2017 - 23:06h

m1n3ro escreveu:

Valeu pessoal já deram uma luz. Como disse preciso pegar o primeiro nome de varios arquivos para copiar cada um deles em uma pasta contendo esse mesmo nome. Para organizar isso eu pensei em criar uma lista contendo o nome dos arquivos:

# ls . > lista.txt

Depois organizar com as dicas que vocês me deram:

# sed 's/\,.*\| -.*//' lista.txt > saida.txt

Em seguida retirar nomes duplicados:

# sort -u saida.txt -o lista1.txt

Agora fiquei com outra dúvida, preciso copiar tudo que contem nessa lista, por exemplo:

#cat lista1.txt
fulano
beltrano
ciclano

cp fulano* diretório
cp beltrano* diretório
cp ciclano* diretório

Mas usando os nomes de dentro da lista para usar no comando de cópia epecificando o tudo * depois do nome.





Depois de toda a ajuda que te deram, essa parte fica simples.
#!/bin/bash

for ARQUIVO in `cat lista1.txt`
do
cp ${ARQUIVO}* diretorio/
done


Te aconselho quando fores utilizar o comando ls, utilizar o parametro -1, ficando

ls -1 

Porque dessa forma garantes que os dados virão em apenas uma coluna, independente do sistema.

3. Re: Guardar nome de arquivo em variável.

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 28/08/2017 - 18:32h

$ ls -1
arquivo2,teste
arquivo vazio1
Novo-arquivo-vazio2
outro_arquivo

$ ls -1 | awk -F"-| |,|_" '{print $1}'
arquivo2
arquivo
Novo
outro



4. Re: Guardar nome de arquivo em variável. [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 28/08/2017 - 18:36h

Talvez: cut -d "delimitador" -f "campo"


$ echo "Audiostatik, Beat Herren" | cut -d "," -f 1
Audiostatik



5. Re: Guardar nome de arquivo em variável.

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 28/08/2017 - 18:44h

m1n3ro escreveu:

Boa tarde,

Precisando de uma dica como guardar o início do nome de um arquivo em uma variável.

A dificuldade é que não é o nome inteiro, os arquivos tem nomes compostos, e precisam ser copiados so a primeira parte. Por exemplo:

Audiostatik, Beat Herren
Audiodact - Wandering

Então o que preciso guardar na variável é so o primeiro nome. A minha dificuldade e saber como informar ao script que ele deve armazenar o nome até a vírgula ou até o espaço antes do hífen.
Desde já agradeço.

Boa noite.
Seguem sugestões:
cat Novo
Audiostatik, Beat Herren
Audiodact - Wandering


sed 's/\,.*\| -.*//' Novo  

Audiostatik
Audiodact


sed 's/ -.*//' <<< "Audiodact - Wandering"
Audiodact
sed 's/,.*//' <<< "Audiostatik, Beat Herren"
Audiostatik

Att.:
Marcelo Oliver




6. Re: Guardar nome de arquivo em variável. [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 28/08/2017 - 21:11h

Valeu pessoal já deram uma luz. Como disse preciso pegar o primeiro nome de varios arquivos para copiar cada um deles em uma pasta contendo esse mesmo nome. Para organizar isso eu pensei em criar uma lista contendo o nome dos arquivos:

# ls . > lista.txt

Depois organizar com as dicas que vocês me deram:

# sed 's/\,.*\| -.*//' lista.txt > saida.txt

Em seguida retirar nomes duplicados:

# sort -u saida.txt -o lista1.txt

Agora fiquei com outra dúvida, preciso copiar tudo que contem nessa lista, por exemplo:

#cat lista1.txt
fulano
beltrano
ciclano

cp fulano* diretório
cp beltrano* diretório
cp ciclano* diretório

Mas usando os nomes de dentro da lista para usar no comando de cópia epecificando o tudo * depois do nome.










Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts