Retirar hífen dos arquivos [RESOLVIDO]

1. Retirar hífen dos arquivos [RESOLVIDO]

João Victor da Silva
joao_victor

(usa CentOS)

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


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

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]

Marcos Felipe
plimo263

(usa Ubuntu)

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]

João Victor da Silva
joao_victor

(usa CentOS)

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







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts