OKWaveが大リニューアル!ただいまβ版公開中

テキストフィルの行の文字数順にソートしたいのですが・・・


OKWaveコミュニティー
新規ユーザー登録(無料)今すぐ登録しよう!!
はじめての方へ OKWaveではこんなことができます!
ピックアップ
特集一覧
ブラック会社の喜怒哀楽
ブラック会社の喜怒哀楽
現代を生き抜く知恵と努力!あなたの未来を明るく照らします!
OKWaveスタッフブログ
OKWaveスタッフブログ
OKWaveスタッフから便利でお得な情報をQ&Aと共にご紹介します!
好きだからこそ切ない!恋愛特集
好きだからこそ切ない!恋愛特集
「会いたいときに会えない」そんな切ない思いを恋愛で体験したことはありませんか?
その他の特集はこちらからご覧下さい

質問

質問者:510510 テキストフィルの行の文字数順にソートしたいのですが・・・
困り度:
  • すぐに回答を!
テキストファイルの行単位での文字数が多い順や少ない順に
ソートして並べ替えしたいのですが、その様なフリーソフトってないでしょうか?

ベクターなども、見たのですが、Aからとかの昇り順と降り順しかないので・・・
もしかしたら見落としかもしれません・・・

--------------------------
honey
shanshanmeimei
loverzday
artfree
tfsq
上記の物を下記にしたいのです。
--------------------------
shanshanmeimei
loverzday
artfree
honey
tfsq
--------------------------
この様に、文字数が多い順に並べ替えをしたいのです。
出来れば、少ない順も出来るソフトもあれば良いのですが・・・

よろしくお願いいたします。
質問投稿日時:08/09/14 18:17
質問番号:4328461
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

良回答20pt

回答者:koma30007 NO.3の方が紹介したOpenOffice.orgのCalcを使った
方法です。

1.Bなどの空いている列に次を入力
=LEN(A1)
※A1に単語がある場合です。A2から入力されている
場合、B2など横の空いているセルに「=LEN(A2)」
2.上記を入力したセルを選択してコピー
3.B2以降のセル(A列に入力された単語の文字数カウント
が必要な分)を選択して右クリック→「形式を選択して
貼り付け」
4.「すべて挿入」のチェックを外し、「数式」だけに
チェックを入れた状態で「OK」
※A列の横のセルに単語の文字数が入力された状態に
なるはずです。
5.A列の単語とB列の文字数が入力されたセルを選択
6.「データ」→「並び替え」を実行
7.最優先キーに「列B」を選択して「降順」にチェック
8.「オプション」タブを選択して「並べ替え結果の
貼り付け先」だけにチェックをつける
※入力欄には「C1:D30」など、結果を貼り付けるセルを
指定後、「OK」
9.必要のない列を削除してから「テキストCSV」で
保存すると良いです。
10.テキストエディタで「"」「'」「,」など要らない
部分を削除(※置換機能を使うと楽です)
ほとんどのテキストエディタでは、検索する文字列に
「要らない文字」、置換後の文字列を空欄で大丈夫な
はず...(※メモ帳でも可能でした)
※ファイルの拡張子は、TXTが良ければ「名前の変更」で
CSVからTXTに変更しても大丈夫です。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/09/19 14:15
回答番号:No.5
この回答へのお礼回答有り難う御座いました。

ズバリ!詳しい説明で出来ました!
ここまで丁寧に回答して頂き誠に有り難う御座いました。

回答

 

回答者:koko_u_ >ですが・・・コードを書くとは、どこにどうやって書くのでしょうか?

実は、コンピュータにはもっと自由自在に自分のしたいコトを指示することができるのです。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/09/14 19:01
回答番号:No.4
参考URL: http://www.ruby-lang.org/ja/
この回答へのお礼すいません・・・
まったくもって、拝見したHPは、意味が解りません・・・・
何を、ど〜すれば良いのか・・・・・

回答

 

回答者:l4330  
Excelが無いなら手に入れましょう
http://ja.openoffice.org/

 
種類:回答
どんな人:経験者
自信:自信あり
回答日時:08/09/14 18:43
回答番号:No.3
この回答への補足お願いします。

>excelで読み込んで
>=len(A1)
>このように文字数を数える関数をB列に入れてB列で並び替え。
>後はB列を削除してtxt形式で保存してください

やってみたのですが、なんどやっても、ABCDとかの文字順位になってしまいます・・
=len(A1)は、B列の一番上に一回だけ入力すれば良いのでしょうか?
もうちょっと詳しくご教授下さい・・・

よろしくお願いいたします。
この回答へのお礼有り難う御座います!
これでも、同じ事が出来るのですね!
今から、DLして来ます!
有り難う御座いました。

回答

 

回答者:koko_u_ 古来からそういった作業は自分でコードを書けば解決です。

ruby -e 'puts ARGF.readlines.sort { |a, b| b.length <=> a.length }' inputfile.txt

少ない順にするのも明らかですね。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/09/14 18:34
回答番号:No.2
この回答へのお礼回答有り難う御座いました

ですが・・・コードを書くとは、どこにどうやって書くのでしょうか?

よろしくお願いいたします。

回答

良回答10pt

回答者:l4330  
excelで読み込んで
=len(A1)
このように文字数を数える関数をB列に入れてB列で並び替え。
後はB列を削除してtxt形式で保存してください

 
種類:回答
どんな人:経験者
自信:自信あり
回答日時:08/09/14 18:20
回答番号:No.1
この回答への補足申し訳ありません・・・
excelが、無いんです・・・

回答有り難う御座いました!
この回答へのお礼この回答にお礼をつける(質問者のみ)
最新から表示回答順に表示良回答のみ表示