У меня есть file1.txt со списком MD5sums и соответствующих имен файлов.
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
Как делают я вывожу это к file2.txt со строками, запускающимися с имен файлов вместо хеша и вида в алфавитном порядке как такой:
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
Спасибо так, так!
Если Ваша цель состоит в том, чтобы отсортировать текстовый файл на основе определенных столбцов, Вы не должны изменять порядок столбцов, если Вы используете -k
опция GNU sort
. Только к виду на основе 2-го и последующего (разграниченный пробел) использование столбцов:
sort -k 2
Дополнительно я советую Вам использовать C
или POSIX
локаль сопоставления, чтобы выдержать сравнение и отсортировать пути или можно получить неожиданные результаты из-за нечувствительности к регистру или специальных символов:
LC_COLLATE=POSIX sort ...
Как насчет:
awk '{ print $2, $1 }' < file | sort > file2
Это возьмет данные из файла, названного 'файлом', подкачает эти два поля и отсортирует их в файл 'file2'