Pular para o conteúdo

Retirar hífen dos arquivos [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Retirar hífen dos arquivos [RESOLVIDO]

Enviado em 27/11/2017 - 16:13h

Boa tarde
Como faço para retirar os hífens de arquivos que estejam em determinada pasta,exemplo:

01-A_Arte_de_Chico_Buarque-Chico_Buarque-Rosa_dos_Ventos

gostaria de separá-lo e criar uma pasta para cada intervalo do hífen ficando assim:
Pasta: Chico_Buarque
Pasta: A_Arte_de_Chico_Buarque

Responder tópico

2. Re: Retirar hífen dos arquivos [RESOLVIDO]

Melhor resposta

Enviado em 27/11/2017 - 19:04h

joao_victor escreveu:

Boa tarde
Como faço para retirar os hífens de arquivos que estejam em determinada pasta,exemplo:

01-A_Arte_de_Chico_Buarque-Chico_Buarque-Rosa_dos_Ventos

gostaria de separá-lo e criar uma pasta para cada intervalo do hífen ficando assim:
Pasta: Chico_Buarque
Pasta: A_Arte_de_Chico_Buarque
Boa noite.
Segue sugestão.
for arq in $(ls -1);do
dir2=$(awk -F"-" '{print $2}' <<< "$arq"}
dir3=$(awk -F"-" '{print $3}' <<< "$arq"}
mkdir $dir2
mkdir $dir3
done
Obs.:
No momento não tenho como testar..
Att.
Marcelo Oliver

3. Re: Retirar hífen dos arquivos [RESOLVIDO]

Enviado em 27/11/2017 - 18:03h

Boa tarde amigo, se eu entendi, você deseja pegar um arquivo que contenha linhas como o exemplo que você disse e separar os hifens afim de criar diretorios e subdiretorios a cada separação de hifen certo ? Se for isto tem este script aí que lê de um arquivo enviado como parametro e cria diretorios e subdiretorios delimitados por hifen

#!/bin/bash

# Faz um loop para fatiar as linhas retornadas pelo arquivo informado
for l in $(cat $1);do
# Delimita o campo a ser fatiado quando encontrado um hifen
num=1
# Diretorio onde o script foi executado, os subdiretorios serao criados a partir daqui
dirPai=$PWD
# Realizando um loop para criar as pastas (caso nao existam) a cada fatiamento do hifen
while true; do
# Fatia a string enviada na entrada padrao para que o cut recupere o campo do valor da variavel num
dir=$(echo "$l" | cut -d'-' -f $num )
# Se o comando nao retornou nada, quer dizer que nao foi possivel fatiar, entao defina as variaveis para os valores default
if test -z "$dir"; then
num=1
dirPai=$PWD
# Saindo do loop while interno
break
fi
# Cria o caminho para criar o diretorio
dirPai=$dirPai'/'$dir
# Se este diretorio nao existe, criamos ele com o comando abaixo.
if test ! -d "$dirPai";then
mkdir -p $dirPai
fi
# Incrementa a variavel num para fatiar o proximo campo da string encontrada
let num++
done
done


4. Re: Retirar hífen dos arquivos [RESOLVIDO]

Enviado em 29/11/2017 - 01:07h

msoliver escreveu:

joao_victor escreveu:

Boa tarde
Como faço para retirar os hífens de arquivos que estejam em determinada pasta,exemplo:

01-A_Arte_de_Chico_Buarque-Chico_Buarque-Rosa_dos_Ventos

gostaria de separá-lo e criar uma pasta para cada intervalo do hífen ficando assim:
Pasta: Chico_Buarque
Pasta: A_Arte_de_Chico_Buarque
Boa noite.
Segue sugestão.
for arq in $(ls -1);do
dir2=$(awk -F"-" '{print $2}' <<< "$arq"}
dir3=$(awk -F"-" '{print $3}' <<< "$arq"}
mkdir $dir2
mkdir $dir3
done
Obs.:
No momento não tenho como testar..
Att.
Marcelo Oliver


Vlw cara, vc me deu um norte. Abraços

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder