2010-03-03 200 views

回答

24
echo cba | grep -o . | sort |tr -d "\n" 
5

這是作弊(因爲它使用Perl),但工程。 :-P

echo cba | perl -pe 'chomp; $_ = join "", sort split //' 
+1

或Ruby線明智;) '回波CBA | ruby -e'放入ARGF.read.split(%r {\ s *})。sort.join'' – 2010-03-03 18:58:49

6

請查找以下有用的方法:

殼牌

排序基於字符串的劇中人物:

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,你必須從一個字符串枚舉的每個字符,一般是這樣的:

str="dd aa cc bb"; 
for ((i = 0; i < ${#str[@]}; i++)); do echo 「${str[$i]}」; done 

對於排序數組,請檢查:How to sort an array in bash

1

另一個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 
相關問題