Если у Вас нет a which
поддержка -a
, или whence
доступный, самокрутка:
#!/bin/sh -f
IFS=":"
for PART in $PATH
do
if test -x "$PART/$1"
then
echo $PART/$1
fi
done
Необходимо указать столбец конца, также:
$ sort -k1,1 text.txt
a 1
a 11
A 1
Заключить страницу справочника вида GNU в кавычки:
-k, --key=POS1[,POS2] start a key at POS1 (origin 1), end it at POS2 (default end of line)
Вы несомненно наталкиваетесь на ошибку в sort
!, Если бы у Вас не было пробелов в файле, не было бы никакого способа отсортировать его правильно:
$ cat aaa
a1
A1
a11
$ sort aaa
a1
A1
a11
$ sort -k1,1 aaa
a1
A1
a11
Еще более видимый со следующим:
$ cat bbb
A B b 0
a B b 0
A b b 1
$ sort bbb
a B b 0
A B b 0
A b b 1
$ sort -k1,2 bbb
a B b 0
A b b 1
A B b 0
$LC_LOCALE
это не POSIX
, с тех пор A
не прежде a
. По этой проблеме посмотрите LC_COLLATE (должен) влиять на диапазоны символов?Почему прописные буквы включены в диапазон строчных букв в awk regex?OSXне имеет du -b
– Gilles 'SO- stop being evil'
02.09.2011, 01:43
A
прежде или после a
- это - это в некоторых случаях, это рассматривают как прежде в другом как после.
– rozcietrzewiacz
02.09.2011, 09:17
sort
самостоятельно - но две буквы, определяемые как эквивалентный? Это абсурдно! Кто и почему когда-нибудь придумывал это?
– rozcietrzewiacz
02.09.2011, 10:04
en_US.UTF-8
!, Кроме того, случай еще более сложен, чем это. Простой тест, предложенный в этом ответе, печатает, в зависимости от локали, также A > a
или a < A
но никогда A = a
. Все же, sort
искажение...
– rozcietrzewiacz
02.09.2011, 10:22
POS2
является очевидно дополнительным. Возможно, ошибка вsort
? – rozcietrzewiacz 01.09.2011, 11:15