Как сортировать символы в строке? Я хотел бы отсортировать символы в строке. например. echo cba | sort-command abc Есть ли команда, которая позволит мне это сделать, или мне нужно написать awk script для итерации по строке и ее сортировки? Ответ 1 echo cba | grep -o . | sort |tr -d "\n" Ответ 2 Найдите следующие полезные методы: Shell Сортировка строки на основе ее символов: echo cba | grep -o . | sort | tr -d "\n" Строка, разделенная пробелами: echo 'dd aa cc bb' | tr " " "\n" | sort | tr "\n" " " Perl print (join "", sort split //,$_) рубин ruby -e 'puts "dd aa cc bb".split(/\s+/).sort' Bash С bash вам нужно перечислить каждый символ из строки, в общем что-то вроде: str="dd aa cc bb"; for (( i = 0; i < ${#str[@]}; i++ )); do echo "${str[$i]}"; done Для сортировки массива, пожалуйста, проверьте: Как отсортировать массив в bash? Ответ 3 Это обман (потому что он использует Perl), но работает.:-P echo cba | perl -pe 'chomp; $_ = join "", sort split //' Ответ 4 Другой perl однострочный $ echo cba | perl -F -lane 'print sort @F' abc $ # for reverse order $ echo xyz | perl -F -lane 'print reverse sort @F' zyx $ # or $ echo xyz | perl -F -lane 'print sort {$b cmp $a} @F' zyx Это также добавит новую строку для вывода, любезность -l См. Переключатели команд для документа для всех параметров Вход в основном разделяется символом и сохраняется в массиве @F Затем отсортировано @F Это также будет работать в соответствии с заданным входным файлом $ cat ip.txt idea cold spare umbrella $ perl -F -lane 'print sort @F' ip.txt adei cdlo aeprs abellmru
Ответ 2 Найдите следующие полезные методы: Shell Сортировка строки на основе ее символов: echo cba | grep -o . | sort | tr -d "\n" Строка, разделенная пробелами: echo 'dd aa cc bb' | tr " " "\n" | sort | tr "\n" " " Perl print (join "", sort split //,$_) рубин ruby -e 'puts "dd aa cc bb".split(/\s+/).sort' Bash С bash вам нужно перечислить каждый символ из строки, в общем что-то вроде: str="dd aa cc bb"; for (( i = 0; i < ${#str[@]}; i++ )); do echo "${str[$i]}"; done Для сортировки массива, пожалуйста, проверьте: Как отсортировать массив в bash?
Ответ 3 Это обман (потому что он использует Perl), но работает.:-P echo cba | perl -pe 'chomp; $_ = join "", sort split //'
Ответ 4 Другой perl однострочный $ echo cba | perl -F -lane 'print sort @F' abc $ # for reverse order $ echo xyz | perl -F -lane 'print reverse sort @F' zyx $ # or $ echo xyz | perl -F -lane 'print sort {$b cmp $a} @F' zyx Это также добавит новую строку для вывода, любезность -l См. Переключатели команд для документа для всех параметров Вход в основном разделяется символом и сохраняется в массиве @F Затем отсортировано @F Это также будет работать в соответствии с заданным входным файлом $ cat ip.txt idea cold spare umbrella $ perl -F -lane 'print sort @F' ip.txt adei cdlo aeprs abellmru