awk '{ if ($4!=$6) print $4 - $6" "$0_}' ~/defrag-2017-11-05 | sort -g
Usamos o awk para comparar as duas colunas na entrada para ver se elas não são iguais e imprimir a diferença nos valores seguidos pelas linhas inteiras. Então, classificamos as linhas filtradas pelas diferenças que adicionamos no início da linha.
Se você quiser verificar as linhas com o primeiro número maior que 1, você pode usar
awk '{ if ($4>1) print $0_}' ~/defrag-2017-11-05 | sort -gk4
Aqui, simplesmente classificamos a quarta coluna em vez de criar uma nova coluna de diferença.
Editar
Para manipular espaços em nomes de arquivos e caracteres estranhos no início das linhas e filtrar outras linhas, use
awk '/extents: / { sub(/.*\]\//, "/"); sub(/:/, "", $1); if ($(NF-5)!=$(NF-3)) print $(NF-5) - $(NF-3)" "$1 }' ~/defrag-2017-11-05 | sort -g
Aqui está o script awk formatado bem para facilitar a leitura
/extents: / {
sub(/.*\]\//, "/");
sub(/:/, "", $1);
if ($(NF-5)!=$(NF-3)) print $(NF-5) - $(NF-3)" "$1
}
- filtra qualquer linha que não tenha
extents:
. - substitui os caracteres iniciais por
]/
por/
para remover as bobagens no início das linhas. - remove
:
do nome do arquivo para torná-lo um pouco mais limpo - compara os dois campos nos preocupamos em contar a partir do final da string e imprime as linhas onde os dois números diferem com essa diferença.