Enviado em 29/03/2016 - 18:19h
#!/bin/bash
> arq.temp
sort arq|uniq -c|sed 's/^[ ]\+//' >> arq.temp
NL=$(awk 'END {print NR}' arq.temp)
for ((L=1;L<=$NL;L++));do
if (($L>1));then
LM=$((L-1))
LINANT=$(sed -n "$LM"p arq.temp)
read C1an C2an C3an C4an <<< "$LINANT"
LINATU=$(sed -n "$L"p arq.temp)
read C1at C2at C3at C4at <<< "$LINATU"
#SE C2 LINHA ATUAL = C2 LINHA ANTERIOR
if [ "$C2at" = "$C2an" ];then
for ((i=0;i<$C1at;i++));do
echo -n "$C3at $C4at "
done
else
echo -e "\n$C2at"
for ((i=0;i<$C1at;i++));do
echo -n "$C3at $C4at "
done
fi
else
LINATU=$(sed -n "$L"p arq.temp)
read C1at C2at C3at C4at <<< "$LINATU"
echo -e "\n$C2at"
for ((i=0;i<$C1at;i++));do
echo -n "$C3at $C4at "
done
fi
done
--------------------------------------------------------------------------------------------------------
EDITADO em 29/03/2016 as 19:50h
Pensando um pouquinho, deu para reduzir o código . . . :)
#!/bin/bash
NL=$(awk 'END {print NR}' $1)
for ((i=1;i<=$NL;i++));do
if egrep -q "\b$i\b" $1;then
echo -e "\n$i"
awk '{if($1=='$i')printf "%s %s " ,$2,$3}' $1;echo
fi
done;echo
cat arq
1 A A
1 A A
1 A A
1 A A
2 T T
2 T T
2 T T
2 T T
2 T T
2 T T
2 T T
2 A T
3 B B
3 B B
--------------------------------------------------------------------------------------------------------
Se resolver, marque como resolvido, por favor.
Gostando da resposta, marque-a como MELHOR, dessa forma, ganho uns pontinhos,
o que incentiva a continuar colaborando, ajudando, participando e compartilhando conhecimentos . . . :)
Att.:
Marcelo
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
TECLADO NÃO FUNCIONA NO DEBIAN (0)
Ethernet não reconhece no ubuntu 24.04 (0)
Como eu faço para ativar o sistema de gestos do mousepad? (4)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (13)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta