у меня есть запись файла с версиями программного обеспечения apache, нужно отсортировать их по версии - PullRequest
0 голосов
/ 28 мая 2018

У меня есть файл с данными в следующем формате,

File: Test.txt
org.apache.hive.v.0.3.5
org.apache.pig.v.0.2.3
org.apache.hadoop.0.1.1
org.apache.v.0.2.5

Эта запись должна быть отсортирована по номерам версий, я пытался использовать команду awk , но не смог получить правильный ответ.Какой подход мне нужно следовать?

1 Ответ

0 голосов
/ 29 мая 2018

Я думаю, что это будет просто уродливо, поскольку столбцы, по которым вы хотите отсортировать, заметны только по их положению по сравнению с концом строки (последние три столбца), поэтому sort -nk<start>,<stop> не собирается разрезатьit.

Вы можете использовать awk, чтобы переместить их в начало строки, затем нажать на нее с помощью sort, а затем использовать sed, чтобы очистить поля сортировки с начала записи:

awk -F"." 'BEGIN{OFS=" "}{print $(NF-2),$(NF-1),$NF,$0}' Test.txt | sort -nk1,3 | sed 's/^[0-9].*\s[0-9].*\s[0-9].*\s//g'

Возможно, некоторые sed эксперты могли бы немного это исправить, но это должно сработать само по себе (это при условии, что номера версий всегда <number>.<number>.<number>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...