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
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Aplicativo simples para gravar tela
Quebra de linha na data e hora no Linux Mint
Firefox não abre em usuário não administradores (0)
Sempre que vou baixar algum pacote acontece o erro dpkg (8)
tentando instalar em um notebook antigo o Linux LegacyOS_2023... [RESO... (8)
Problema com Conexão Outlook via Firewall (OpenSUSE) com Internet Fibr... (5)