Я хотел бы отсортировать символы в строке.
например.
echo cba | sort-command
abc
Есть ли команда, которая позволит мне это сделать, или мне нужно написать awk
script для итерации по строке и ее сортировки?
Я хотел бы отсортировать символы в строке.
например.
echo cba | sort-command
abc
Есть ли команда, которая позволит мне это сделать, или мне нужно написать awk
script для итерации по строке и ее сортировки?
echo cba | grep -o . | sort |tr -d "\n"
Найдите следующие полезные методы:
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?
Это обман (потому что он использует Perl), но работает.:-P
echo cba | perl -pe 'chomp; $_ = join "", sort split //'
Другой 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