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