• 締切済み

cshで、文字をアルファベット順に並べかえたい

cshellで配列に格納した文字を、アルファベット順に並べ替えたいのですが、いい方法はないでしょうか? array[1] = 'T'; array[2] = 'B'; array[3] = 'A'; のように文字の格納された配列があるのですが、 これを、アルファベット順に、 array[1] = 'A'; array[2] = 'B'; array[3] = 'T' このように並べ替えたいのです。 printfを使って、文字コードを比較し、並べ替えようとしたのですが、cshでは、エラーになってしまいます。 また、LINUXのsortコマンドを使う方法もためしてみたのですが、cshスクリプト内で、コマンドが実行されません。 別の方法があるのでしょうか?それとも上記の2つの方法で実装できるのでしょうか? どうか皆さまの知恵を貸して下さい。 よろしくお願い致します。

みんなの回答

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

値に空白文字が含まれないという前提で、 set array=`echo $array | tr " " "\012" | sort`

関連するQ&A

  • Perlでの文字列操作について

    Perlを使用しての文字列操作について教えてください。 たとえば以下のような数字とアルファベットが順に並ぶ文字列があるとします。 11A4C555D67B114B9423C アルファベットは1文字ですが、数字は何個でも連続で並びます。 この文字列を「数字アルファベット」の部分で分割し、配列に格納したいのですが、うまくいきません。 @array=('11A','4C','555D','67B','114B','9423C') どなたか教えてください。よろしくお願いいたします。

  • 文字をアルファベット順に3つずつずらす方法

    エクセルで、 文字をアルファベット順に3つずつずらす方法を教えてください。 A1セルに"ABC"と入力したら、 B1セルに"DEF"と表示されるようにしたいのですが... よろしくお願いします。

  • 文字数順にソートするには

    テキストファイルの行を文字数順にソートしたいのですが、 sort コマンドを使って行うことはできないのでしょうか? $ perl -e 'print for sort { length $a <=> length $b } <>' foo.txt でもいいのですが、行数が膨大なため、できるだけ早く処理したいと思っています。 もし何か方法がありましたら教えてください。お願いします。

  • 文字式でのアルファベット順とは?

    中1数学の文字式の単元の「かけ算の省略」でいまだにはっきりしない疑問があります。教科書や参考書には、 「文字はアルファベット順に」 「カッコでくくられたものは1つの文字として扱う」 と、よく説明してあるのですが、それでは、 c×(a+b)=(a+b)c になるのでしょうか? 私は今まで、カッコでくくられたものは「27番目の文字(zよりも後ろに置くべき)」と考えていたので、先ほどの式は、 c×(a+b)=c(a+b) だと思っていたのです。 カッコがからんできたときの順番の決まりを教えてください。 下に例題と私なりの解答を示します。皆様の解答や意見もいただけたらと思います。 1 (a+b)×z×5=5z(a+b) 2 (a+b)×c×(d+e)=c(a+b)(d+e) 3 上底acm、下底bcm、高さhcmの台形の面積  1/2(a+b)h 3については、先頭に分数の1/2を置かず、全体を2分の~という形の分数にしたいです(表記の方法が判りませんでした)。ただ、この場合は公式をイメージしやすい、hが後ろにある形にすべきではと思います。

  • 数値の大きい順にソート

    数値の大きい順にソートするにはどのようにしたらよろしいでしょうか? 例えば、 @A = ("10","5","18","6","9"); という配列があるとします。 これを @B = sort @A; とすると、 10,18,5,6,9 となってしまいます。 これを 18,10,9,6,5 のように数値の大きい順に配列Bに代入したいのですが、どうしたらよいでしょうか?よろしくお願いします。

    • ベストアンサー
    • Perl
  • アルファベットをカウント、

    文章の中のアルファベットの種類の出現頻度 をカウントするプログラムをつくっているのですが、 わかりません。 まずcpというポインタで動的メモリを確保し そこの中に文章の全文字を格納するところまで はできました。そして、cpを ループカウンタで回して aならa、bならbの数のカウントがしたいのですが、 そこの部分がよくわかりません。 まずchar kind_character[26]; とかにして、aからzまでを格納して 比べたいのです。問題はどうやって aからz、AからZを格納するのか わからないのです。 char kind_character[26]と比較して、 aからAならint number_of_A_to_Z[26]の0番目 の配列に数字を格納したいのです。 またaとAというのは、別に扱われるのでしょうか_ そして、あとはprintfでどうにか表示しようかと思っているのですが、、、 お願いします。

  • 配列のランク付け

    配列のランク付けをしたいのですが方法が分からず困っています。 例えば、 $a = array("1", "5", "3", "2", "3", "1", "1")という配列があったら $b = array("5", "1", "2", "4", "2", "5", "5")といったように値が大きい順に ソートせずランク付けして新しい配列を作れたらと考えています。 アドバイスをお願い致します。

    • ベストアンサー
    • PHP
  • cshの詳しいサイトはありますか?

    指定のpathにあるバッチをcshから呼び出したいのですが、cshで文字列連結の方法がわかりません。 #!/bin/csh path = "./" path+batch1.csh $1 本当は、バッチのpathは別ファイルに書いて置き、そのファイルを呼び出して変数名pathに格納したいのですが、cshに詳しいサイトはありますでしょうか?

  • URLの文字列からパラメータ部分を取得して配列にしたい

    http://www.***.com/xxx.php?a=123&b=456&c=789 上記の文字列(ページURLではなく変数に格納されています)の?以降を$_GETと同じ構造の配列にしたいです。 &、=で分解してarray_combineを使おうとしたらできませんでした。 調べて見たらバージョンが違うため未実装でした。 $_GETと同じ構造の配列にするにはどのように記述すれば良いのでしょうか?

    • ベストアンサー
    • PHP
  • 英単語をアルファベット順に

    英単語をいくつか入力し、それをアルファベット順に並べ替えるプログラムが作りたいのですが。アルファベットをaから順に小さくなっていくようにし、英単語の頭文字を取り出し大きい順に並べ替えるというふうな感じにしたいのですが、なかなかうまくいきません。誰か教えていただけませんか?