сортировка специальных символов, таких как + и -

grep раствор:

grep -q '.\.sql$' file.txt && grep -v '\.sql$' file.txt > output_file.txt

Второй grepоператор/команда будет выполняться только в том случае, если первый вернул нулевой статус выхода 0, если найдено какое-либо совпадение с шаблоном .\.sql$


Окончательный output_file.txtконтент:

actual.class
actual1.class
actual2.class
actual3.class
actual4.class
1
19.01.2020, 20:50
2 ответа

Мы все еще можем использовать sort, если это большой файл:

#!/usr/bin/env bash

perl -F'\t' -ne '{$F[1] =~ s/o/,/; $F[4] =~ s/l/t/; print join "\t",@F}' file|\
sort -t $'\t' -k 2,2 -k 5,5 |\
perl -F'\t' -ne '{$F[1] =~ s/,/o/; $F[4] =~ s/t/l/; print join "\t",@F}'

Первый perl-скрипт изменяет oна ,во втором столбце, lна tв пятом, чтобы подготовить сортировку.

Второй perl-скрипт возвращается.

0
27.01.2020, 23:55

Существует метод, называемый DSU, украшение -сортировка -неукрашение или преобразование Шварца.

Базовый метод заключается в изобретении собственных ключей-заменителей, которыми могут быть любые комбинации ваших данных, (извлеченных из любых частей ваших записей, возможно, зависящих от других полей ). Это должны быть только ранжирования в требуемом порядке значимости. Например, часто полезно заполнить числовые поля нулями -. Вы можете сделать окончательный порядок стабильным, добавив номер входной строки в качестве финального подраздела. Общая длина ключа должна быть одинаковой для всех записей.

Затем вы сортируете их в соответствии с -порядком k1.1 (вся запись ). Часто это может быть быстрее, чем сортировка по нескольким ключам, потому что обычно сортировка восстанавливает два мультиключа для каждого сравнения.

Наконец, вы снимаете декорирование с отсортированного вывода, обрезая декорирование фиксированной -длины.

1
27.01.2020, 23:55

Теги

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