プロが教える店舗&オフィスのセキュリティ対策術

以下のようにテキストファイルを加工したいのですが、どうすればいいのかわかりません。教えてください。
■元のテキスト
This is one of my favorite things.
Go to school.
Come here.
I am a boy.
You are not a girl.
■加工後
Come here.
Go to school.
I am a boy.
You are not a girl.
This is one of my favorite things.
つまり、英語の文の語数が多い順に並べたいのですができますでしょうか?

A 回答 (5件)

これって正規表現でやれる事なのかな?



テキストファイルならExcelとかに読み込んで文字列の長さを別の列に表示させ並べ替えれば出来るんじゃないの?
    • good
    • 0
この回答へのお礼

回答、ありがとうございました。
エクセル、持ってないので、テキストショップでできなかどうか試してみます。

お礼日時:2018/06/23 17:36

正規表現に並べ替えの概念はありません。

並べ替え以外の文字列編集の概念もありません。
ですので、正規表現で何とかしようとする試みが間違いです。

秀丸マクロでならワードカウントや並べ替えができるかもしれませんが、そちらはよく知りません。
    • good
    • 0

正規表現では無理ですが、秀丸マクロなら可能みたい。


https://hide.maruo.co.jp/lib/macro/arrangeline.h …

大きなサイズのテキストファイルでなければ、クリップボード経由
で処理可能な以下のソフトで簡単に対応できます。
http://www2u.biglobe.ne.jp/~shunbook/omocha/clip …
「秀丸の正規表現」の回答画像3
    • good
    • 2
この回答へのお礼

ありがとうございました。ClipFan で簡単にできました。これ、便利ですね。

お礼日時:2018/06/24 08:47

No.3の回答者です。



回答を投稿してから気が付いたのですが、文字数ではなく単語数
での並べ替えを希望しているのですか?
この場合は、紹介した方法では対応できませんね。

Excelのようなものなら単語数を割り出して、並べ替えも可能。
http://www.excelist.net/ranking/09.html
LibreOfficeなどでも使えますから、試してみては。
https://help.libreoffice.org/Calc/Text_Functions …
    • good
    • 0
この回答へのお礼

できれば単語数で、と思っているのですが。エクセルは持っていないので、LibreOffice を試してみます。ありがとうございました。

お礼日時:2018/06/24 08:50

windows環境ならPowerShellの使用は如何でしょうか?



1.対象のファイルがあるフォルダに後述のtest.ps1を作成して保存
2.コマンドプロンプトを開き、CDコマンドで対象フォルダに移動
3.powershell -executionpolicy remotesigned .\test.ps1 を実行
4.結果がoutput.txtに出力されます。

-----test.ps1 ここから
$input = "input.txt" # 対象ファイル
$output = "output.txt" # 結果出力ファイル

Get-Content $input | Sort-Object -Property {
($_ -split "\s+").Count
} -Descending | Out-File -FilePath $output -Encoding default
----ここまで

ソートの方向を逆にしたい場合は、最終行の-Descendingを削除してください。
    • good
    • 0
この回答へのお礼

回答、ありがとうございました。
コマンドプロンプトを使えば、こんな事もできるのですね。まだやってないのですが、時間を見つけてやってみます。

お礼日時:2018/06/25 10:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!