Как отсортировать строку, которая объединилась со строкой + числовой сценарий удара использования?

Вы используете кросс-компилятор для создания исполняемых файлов (или объекты) для платформы кроме локального хоста. Собственный компилятор только производит собственные двоичные файлы.

27
15.12.2015, 03:54
4 ответа

Можно использовать временный символ сигнальной метки для разграничивания числа:

$ sed 's/\([0-9]\)/;\1/' log | sort -n -t\; -k2,2 | tr -d ';'

Здесь, символ сигнальной метки''; - это не должна быть часть никакого имени файла, которое Вы хотите отсортировать - но можно обмениваться''; с любым символом Вам нравится. Необходимо измениться sed, sort и tr часть затем соответственно.

Трубопроводы следующим образом: sed команда вставляет сигнальную метку перед любым числом, sort команда интерпретирует сигнальную метку как разделитель полей, виды со вторым полем как числовой ключ сортировки и tr команда удаляет сигнальную метку снова.

И log обозначает входной файл - можно также передать вход по каналу в sed.

21
27.01.2020, 19:39
  • 1
    мне нравится способ, которым Вы разрешили проблему :) –  SHW 26.06.2012, 14:29

Можно использовать временный символ сигнальной метки для разграничивания числа:

$ sed 's/\([0-9]\)/;\1/' log | sort -n -t\; -k2,2 | tr -d ';'

Здесь, символ сигнальной метки''; - это не должна быть часть никакого имени файла, которое Вы хотите отсортировать - но можно обмениваться''; с любым символом Вам нравится. Необходимо измениться sed, sort и tr часть затем соответственно.

Трубопроводы следующим образом: sed команда вставляет сигнальную метку перед любым числом, sort команда интерпретирует сигнальную метку как разделитель полей, виды со вторым полем как числовой ключ сортировки и tr команда удаляет сигнальную метку снова.

И log обозначает входной файл - можно также передать вход по каналу в sed.

21
27.01.2020, 19:39

Это очень похоже на этот вопрос. Проблема состоит в том, что у Вас есть алфавитно-цифровое поле, которое Вы сортируете на, и -n не рассматривает это разумно, однако вид версии (-V) делает. Таким образом используйте:

sort -V

Обратите внимание, что эта функция в настоящее время поддерживается GNU, FreeBSD и реализациями вида OpenBSD.

44
27.01.2020, 19:39
  • 1
    Вы знаете, насколько портативный это? Эта опция, кажется, не часть спецификации POSIX. –  Ernest A 22.03.2015, 14:12
  • 2
    @ErnestA: Вы правы, это - вид GNU определенное решение. Добавленный примечание. –  Thor 23.03.2015, 07:18
  • 3
    @ErnestA: Я похож на FreeBSD, и OpenBSD добавили эту опцию. –  Thor 03.10.2016, 17:21
  • 4
    И это не работают, если числа имеют различные префиксы. –  Dante 18.03.2017, 23:23

Если все Ваши имена файлов имеют тот же префикс перед заключительной числовой частью, игнорируют его при сортировке:

sort -k 1.20n

(20 положение первой цифры. Это один плюс длина /home/files/profile.)

Если Вы имеете несколько различных нечисловых частей, вставляете сигнальную метку.

7
27.01.2020, 19:39

Теги

Похожие вопросы