ID:73087
デジタリアン日記〜浅倉大介ファン日記〜
by ymr
[374448hit]

■一行野郎
windows端末にuniqが入っていない場合、perlがあったとする。どうにかしてuniqの代わりに出来ないかなと調べてみました。なんと、連想(ハッシュ)配列で1行で書けるらしい。perlに感動しました。


ちなみにこんな感じ。

>perl −ne ’{$uq{$_}++;}END{foreach(sort keys %uq){print $uq{$_},$_;}}’ ファイル名

(注:見やすいように全角表記にしています。)
これでソートしていなくても重複分のカウントまで出来ちゃう。詰め込んでいるときの++は配列に出現カウントをしているわけですな。


でもこれがDOSプロンプトでやろうとするといろいろ言われたりするわけよ。たとえば「’(シングルクォーテーション)」を使わずになぜか「”(ダブルクォーテーション)」ではないとだめだとか。あと「|」や「>」の前に「^」をつけなくちゃいけないという。つまりパイプやリダイレクトだと勘違いしちゃうという。難しいもんです。

ちなみにUNIXは単純に
>sort ファイル名 | uniq -c
でいいでしょう。マックも今はUNIXベースなので出来るかと。
08月16日(木)
[1]過去を読む
[2]未来を読む
[3]目次へ

[4]エンピツに戻る