dog*_*ane 18 unix sorting command-line
我想在字符串中对字符进行排序.
例如
echo cba | sort-command
abc
Run Code Online (Sandbox Code Playgroud)
是否有一个允许我这样做的命令,或者我是否必须编写一个awk
脚本来迭代字符串并对其进行排序?
gho*_*g74 35
echo cba | grep -o . | sort |tr -d "\n"
Run Code Online (Sandbox Code Playgroud)
ken*_*orb 10
请找到以下有用的方法:
贝壳
根据字符对字符串进行排序:
echo cba | grep -o . | sort | tr -d "\n"
Run Code Online (Sandbox Code Playgroud)
由空格分隔的字符串:
echo 'dd aa cc bb' | tr " " "\n" | sort | tr "\n" " "
Run Code Online (Sandbox Code Playgroud)
Perl的
print (join "", sort split //,$_)
Run Code Online (Sandbox Code Playgroud)
红宝石
ruby -e 'puts "dd aa cc bb".split(/\s+/).sort'
Run Code Online (Sandbox Code Playgroud)
巴什
使用bash,您必须枚举字符串中的每个字符,通常类似于:
str="dd aa cc bb";
for (( i = 0; i < ${#str[@]}; i++ )); do echo "${str[$i]}"; done
Run Code Online (Sandbox Code Playgroud)
对于排序数组,请检查:如何在bash中对数组进行排序?
这是作弊(因为它使用Perl),但有效.:-P
echo cba | perl -pe 'chomp; $_ = join "", sort split //'
Run Code Online (Sandbox Code Playgroud)
又一个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
Run Code Online (Sandbox Code Playgroud)
-l
选项
@F
数组中@F
打印排序
对于给定的输入文件,这也将按行方式工作
$ cat ip.txt
idea
cold
spare
umbrella
$ perl -F -lane 'print sort @F' ip.txt
adei
cdlo
aeprs
abellmru
Run Code Online (Sandbox Code Playgroud)