отсортируйте каждое поле численно, переменные полевые количества

FUSE имеет опции управлять, у кого есть доступ к файлам. Я предполагаю, что Вы хотите sshfs -o allow_other.

7
20.03.2012, 21:25
3 ответа

Благодаря преимуществам, полученным в результате нескольких лет разработки, sort -Vна sort 8.26дает именно то, что нужно:

$ echo -e "b b 1\n23 44\nb 3\na 7\nb b 2\na 1\nb a 10\nb b 10\nb 1\nb a 1\n8 2\nb 10\n8 15\nb a 2\n23 9\nb 2" \
   | sort -V
8 2
8 15
23 9
23 44
a 1
a 7
b 1
b 2
b 3
b 10
b a 1
b a 2
b a 10
b b 1
b b 2
b b 10
1
27.01.2020, 20:16

Я думаю, что Вы, которыми проблема состоит в том, что Вы не понимаете что sort делает. Основной вид основан на значениях символа ASCII, где числа перед верхним регистром, которые являются перед нижним регистром: '1' == 49, == 65, = 97. Это объясняет sort столбец, где числа как '23' отсортирован прежде '8', который является прежде 'b b': значение ASCII для '2' равняется 50, значение ASCII для '8' равняется 56, и для 'b' 98.

При сортировке численно (sort -n), нечисловые записи отсортированы по обычному методу, но интерпретированы как нуль по сравнению с числами, как 23 или 8; но так как значение рассматривают как число, не, символьное значение, '8' прежде '23'. Таким образом, алфавитные записи отсортируют перед числовыми записями.

Ваш лучший выбор состоит в том, чтобы нормализовать данные, таким образом, каждый столбец имеет тот же тип значения: или все числа или все алфавитно-цифровые, и вид соответственно.

В последнем столбце (сортирующий по полю), это отсортирует записи с большим количеством полей сначала, так как Вы явно указываете 4 (или больше) поля. Так (1,2,3) был бы прежде (1,2). Без -k опция, вид проводит строку в целом во внимание.

Можно считать больше информации об информации coreutils страница вида.

7
27.01.2020, 20:16
echo -e "b b 1\n23 44\nb 3\na 7\nb b 2\na 1\nb a 10\nb b 10\nb 1\nb a 1\n18 2\nb 10\n18 15\nb a 2\n23 9\nb 2" \
| sed -r 's/[a-z]/9999&/g' | sort -n -k1 -k2 -k3 | sed 's/9999//g' 
18 2
18 15
23 9
23 44
a 1
b 1
b 2
b 3
a 7
b 10
b a 1
b b 1
b a 2
b b 2
b a 10
b b 10

Это - это, что Вы хотите? Отсортируйте численно, если числовой, и числа перед другими символами?

Я снабжаю префиксом каждую Строку высокое количество, чтобы поместить Строки в последний раз путем сортировки и удалить высокие числа (9999) в конце.

3
27.01.2020, 20:16

Теги

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