Tenho um pipeline usando array jobs e preciso alterar o número de entradas para algumas etapas. Pensei em testar, uniq
já que a única parte que muda nas minhas pastas são os últimos quatro caracteres (a parte hap no exemplo). Então, todos os meus caminhos parecem algo como:
/mnt/nvme/user/something1/hap1
/mnt/nvme/user/something1/hap2
/mnt/nvme/user/something2/hap1
/mnt/nvme/user/something2/hap2
e o que estou fazendo é o seguinte:
DIR=( "/mnt/nvme/ungaro/something1/hap1" "/mnt/nvme/ungaro/something1/hap2" "/mnt/nvme/ungaro/something2/hap1" "/mnt/nvme/ungaro/something2/hap2" )
for dir in "${DIR[@]}"; do echo $dir | sed 's#/hap[0-9]##' | uniq; done
Mas a saída resultante sempre exibe todos os elementos na variável sem recolher as linhas duplicadas após remover a parte hap de cada uma delas.
Provavelmente estou esquecendo de algo, poderia ser que as for
forças imprimam todas as linhas de qualquer maneira. Se sim, há uma maneira de atingir o resultado desejado em um comando de linha única?