Код: Выделить всё
d1/d2a/d3
d1/d2/d3
d1/d2+/d3
< /code>
желаемый результат: < /p>
d1/d2/d3
d1/d2+/d3
d1/d2a/d3
try 01: нормальная сортировка не работает. Это сортирует знаки препинания + (ASCII: 43) перед «Прямой Slash/» (ASCII: 47).
Код: Выделить всё
$ { echo 'd1/d2a/d3' ; echo 'd1/d2/d3' ; echo 'd1/d2+/d3' ;} \
| LC_ALL=C sort --debug
sort: text ordering performed using simple byte comparison
d1/d2+/d3
_________
d1/d2/d3
________
d1/d2a/d3
_________
< /code>
Попробуйте 02: я не уверен. Похоже, что использование-field-separator Код: Выделить всё
$ { echo 'd1/d2a/d3' ; echo 'd1/d2/d3' ; echo 'd1/d2+/d3' ;} \
| LC_ALL=C sort --debug --field-separator='/'
sort: text ordering performed using simple byte comparison
d1/d2+/d3
_________
d1/d2/d3
________
d1/d2a/d3
_________
< /code>
Попробуйте 03: я не уверен. Кажется, что использование -koy = 1 Код: Выделить всё
$ { echo 'd1/d2a/d3' ; echo 'd1/d2/d3' ; echo 'd1/d2+/d3' ;} \
| LC_ALL=C sort --debug --field-separator='/' --key=1
sort: text ordering performed using simple byte comparison
d1/d2+/d3
_________
_________
d1/d2/d3
________
________
d1/d2a/d3
_________
_________
< /code>
Попробуйте 04: желаемый результат можно архивировать, явно перечисляя все ключи. Но глубина пути может быть неограниченной. < /P>
$ { echo 'd1/d2a/d3' ; echo 'd1/d2/d3' ; echo 'd1/d2+/d3' ;} \
| LC_ALL=C sort --debug --field-separator='/' --key=1,1 --key=2,2 --key=3,3
sort: text ordering performed using simple byte comparison
d1/d2/d3
__
__
__
________
d1/d2+/d3
__
___
__
_________
d1/d2a/d3
__
___
__
_________
Подробнее здесь: https://stackoverflow.com/questions/795 ... -separator
Мобильная версия