Bash - invertendo a saída MD5 em um arquivo de texto e classificação

1

Eu tenho um arquivo1.txt com uma lista de MD5sums e nomes de arquivos correspondentes.

edad74614d6d3fa2252c3d74ff037ac7  wp-blog-header.php
de4edc0df80ba147ebcc26f9e0a8b96f  wp-config.php
68070de41736e57f8757648a80b9cbbb  wp-admin/upgrade-functions.php
29b6a5c82153f1371e1188ffa7b47619  wp-admin/error_log
55373449cc2320c57803f1f5b52b9ce9  wp-admin/edit.php

Como despejo isso em um arquivo2.txt com linhas começando com os nomes de arquivos em vez do hash e classificando alfabeticamente como:

wp-blog-header.php  edad74614d6d3fa2252c3d74ff037ac7
wp-config.php  de4edc0df80ba147ebcc26f9e0a8b96f
wp-admin/edit.php  55373449cc2320c57803f1f5b52b9ce9
wp-admin/error_log  29b6a5c82153f1371e1188ffa7b47619
wp-admin/upgrade-functions.php  68070de41736e57f8757648a80b9cbbb

Obrigado, muito!

    
por user9331490 09.02.2018 / 07:35

2 respostas

3

Se o seu objetivo for classificar um arquivo de texto baseado em colunas específicas, não será necessário alterar a ordem das colunas se você usar a opção -k do GNU sort . Para classificar apenas com base nas colunas 2 e subseqüentes (delimitadas por espaço em branco), use:

sort -k 2

Além disso, aconselho que você use o código de idioma C ou POSIX collation para comparar e classificar nomes de caminho ou poderá receber resultados inesperados devido a caracteres especiais ou de diferenciação de maiúsculas e minúsculas:

LC_COLLATE=POSIX sort ...
    
por David Foerster 09.02.2018 / 19:17
1

Que tal:

awk '{ print ,  }' < file | sort > file2

Isto irá pegar os dados do arquivo chamado 'file', trocar os dois campos e classificá-los no arquivo 'file2'

    
por Colin Ian King 09.02.2018 / 20:13