アプリ版:「スタンプのみでお礼する」機能のリリースについて

powershellでのソート処理に関して教えてください。

list.csv
F1,F2,F3
file01.txt,c:\dirA,100kb
file20.txt,c:\dirC,100kb
file100.txt,c:\dirG,100kb
file200.txt,c:\dirG,100kb

CSVで上記の様なデータがあり、F1のデータにおいて、
ファイル名の数字部分でソートしたいのですが、
意図したソートができません。
数字を考慮してのソートってどうやればよいでしょうか。

PS c:\>Get-Content .\list.csv|ConvertFrom-CSV |Sort-Object f1
F1 F2 F3
-- -- --
file01.txt c:\dirA 100kb
file100.txt c:\dirG 100kb
file20.txt c:\dirC 100kb
file200.txt c:\dirG 100kb

file01.txt→file02.txt→file100.txt→file200.txtの並びでソートさせたいです。
よろしくお願いします。

A 回答 (1件)

いろいろ調べてやってみましたがすごく長くなってしまいました。


私もPowerShellを使い始めてまだ1カ月もたっていないのでこれがまともな方法かどうかわかりませんが、結果は大丈夫なようです。
(なお、CSVのフィールド名F1の1は全角だったのでそのままにしてあります)

Get-Content .\list.csv|ConvertFrom-CSV |foreach-object -process {add-member -inputobject $_ -membertype noteproperty -name f4 ([int]($_.F1 -replace ".*?(\d+)\.txt",'$1')) -passthru}|sort-object f4|select-object f1,f2,f3
    • good
    • 0
この回答へのお礼

queuerev2さん
ありがとうございます。
ちょっと返信遅くなりました。
上記の方法試してみます。

お礼日時:2014/10/21 00:49

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