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.