Linux各項目のカウントコマンド

このQ&Aのポイント
  • Linuxを使っているとメール通数をカウントする際には「wc -l」を使いますが、各ユニークな項目ごとのカウントを出す専用コマンドがあるか探しています。
  • シェルスクリプトを書いてForで回す方法もありますが、もし専用コマンドがあれば教えてください。
  • ラインがA、B、C、Dなどの項目で構成されている場合、各項目ごとのカウントを表示するコマンドが欲しいです。
回答を見る
  • ベストアンサー

【Linux】各項目のカウント【コマンド】

はじめまして。シアトルでシスアド見習いをしているものです。 今日はみなさんに、Linux関連のコマンドをお聞きしたくて質問させていただきます。 Linuxを使っていると、例えばメール通数をカウントする際「wc -l」などをよく使います。 全体のラインをカウントする時にはそれでいいのですが、各ユニークな項目ごとのカウントをそれぞれ出すようなコマンドなどがないかと探しております。 感覚的には A A B B B C C C C D というラインがあったら、 A 2 B 3 C 4 のような表示になれば嬉しいなと思います。 シェルスクリプトを書いてForで回して・・・などもできるのですが、もしそういう専用コマンドなどありましたらご教授いただけると幸いです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.2

>A 2 >B 3 >C 4 >のような表示になれば嬉しいなと思います。 カウントと内容の表示が逆でもよいのであれば… uniq -c -d でしょうか…。 なお、事前にsortしておく必要はあるります。 # チェックしたい部分によってはawkとかで抜き出して…とかいろいろいぢる必要はあるかも知れませんけど。(ログファイルなどから特定項目…とか。)

sysadatseattle
質問者

お礼

回答ありがとうございます。 確かにこの実例のように簡単ではないのですが、仰るとおりAWKコマンドで抜き出してからGREP→SEDで綺麗にして・・・という作業は入るものの、自分が求めていたコマンドでした。 RTFM、身に刻みたいと思います。 ありがとうございました。勉強します。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

本当にこれだけなら, sort から uniq で終わり. ただし sort で大量にメモリが必要になったりとてつもなく時間がかかったりするかもしれない.

sysadatseattle
質問者

お礼

回答ありがとうございます。 ・・・自分の未熟さが肌にしみました。 RTFMですね。 ありがとうございました。

関連するQ&A

  • 【Linux】PID特定【コマンド】

    どうも、シアトルでシスアド見習いをさせていただいている者です。 今日はみなさんに、Linux機中で特定のプロセスのPIDを検索する方法をお聞きしたくて質問させていただきます。 例えば、自分のPC内でGoogleChrome(ブラウザ)が走っていて、そのPIDを特定したいような場合はどのようなコマンドを使用すればいいのでしょうか? 知人に聞いたら「top」コマンドを使うと言われましたが、これでは子ルーチンのPIDまで表示されてしまい親PIDとの区別がつかなくなってしまいました。 どなたかご存知のお方がいらっしゃったら教えていただければと思います。 よろしくお願いいたします。

  • LinuxをCLIのコマンドを作るとは?

    すみません教えて頂きたいのですが、 OSはLinuxでCLIのコマンドを作るとはたいていの場合、 Cでコマンドを作るということでしょうか? それともCLIとはシェルのような物でしょうか よろしくお願いします。

  • Linuxのコマンドの抑止方法

    Linuxである特定のユーザだけLinuxの標準のコマンド(cd,mv,ls などなど)の使用を抑止させ、特定のシェルスクリプト10個くらいのみしか使用できなくするにはどうしたらよいでしょうか?

  • Linuxシェルスクリプトを新しいコマンドにしたい

    Linux初級者です。よろしくお願いします。 OSにFedora Core 10, シェルにtcshを使用しています。 よく使用するコマンドを、まとめて一括で実行するように、 新しいコマンドを作成したくて、次のようなことをしていたのですが (1)ホームディレクトリにmybinというディレクトリを作成してPATHを通す。 (2)newbin1という以下の内容のシェルスクリプトを作成して、~/mybinに置いておく。 ================================== #!/bin/tcsh -f date #実行コマンド例1 echo $PATH #実行コマンド例2 ================================== (3)chmodコマンドでファイルに実行権限を与える。 上記のような方法で、作成したシェルスクリプト(newbin1)を PATHの通ったディレクトリ(~/mybin)に置いて、 > newbin1 とコマンドを呼び出しても、 "newbin1: コマンドが見つかりません" というエラーになってしまいます。 > which newbin1 とすると、ちゃんとファイルのパスが表示されるのですが、 *********************************************************** 自分で作成したシェルスクリプト(newbin1)を、 新しいコマンドとして認識させるにはどのようにすればよいのでしょうか。 また、そもそもシェルスクリプトを新しいコマンドにすることが 不可能だったりするんでしょうか? ************************************************************ 一括で実行したいコマンドが多い場合に、aliasで割り当てるのが大変なので、 できればaliasコマンドは使わずにできる方法を探しています。 基本的な質問かもしれませんが、よろしくお願い致します。

  • Linux、unix、シェルスクリプトの基礎知識、コマンドについて

    会社でteratermを使ってコマンドベースの仕事をする機会があるため、コマンドやシェルスクリプトについて理解したいと考えています。 そこで疑問がわいてきたため、何点か質問があります。 1)teratermでtelnetで接続してコマンドを打つときはunixのコマンドですか?linuxのコマンドですか? 2)unixとlinuxで簡単なコマンドレベルでの差は無いものと考えて大丈夫でしょうか? 3)勉強するならunix、linuxどっちがお勧めですか? (今のところ参考書として、独習linuxか独習unixを買って勉強しようと思っています。他にお勧めの参考書があれば教えてください。) 4)シェルスクリプトを家でも作成してみたいのですが、ubuntuをインストールして端末上で操作し、作成して試すことはできるのでしょうか? (お勧めの参考書があれば教えてください。) 長くなってしまいましたが、よろしくお願いします。

  • Linuxのコマンドについて

    Linuxのコマンドについて 同じifconfigでもOSによって返してくる形式が違ったりするのですが、 何か統一する方法はないでしょうか? 日本語と英語の違いがあるものやコマンドによっては全然返してくる形式が違ったりもします。 シェルスクリプトの中でifconfig | grep inetアドレス のような取得の仕方をしているため、 OSが変わるたびに値が取れなくなって困っています。 このような差を吸収出来るような方法はないでしょうか? ---Ubuntu--- eth0 Link encap:イーサネット ハードウェアアドレス 00:1b:78:9e:e5:e1 inetアドレス:192.168.1.101 ブロードキャスト:192.168.1.255 マスク:255.255.255 ---Fedora--- eth0 Link encap:Ethernet HWaddr 00:90:CC:08:2F:B7 inet addr:192.168.1.102 Bcast:192.168.1.255 Mask:255.255.255.0

  • Linuxのサーバで「df」コマンドの結果をメールで送るシェルスクリプト

    すみません、教えていただきたいのですが、 Linuxのサーバでdfコマンドを行った結果、使用率が90%を超えた場合に「mail」コマンドでメールを送るシェルスクリプトを作りたいと思っています。 ご協力よろしくお願いします。

  • shはシェルなのかコマンドなのか?

    http://d.hatena.ne.jp/KishikawaKatsumi/20080504/1209922424 で $ sudo sh j2sdk-1_4_2_13-linux-i586-rpm.bin $ sudo rpm -ivh j2sdk-1_4_2_13-linux-i586.rpm と、shと打ち込むと最後の.binが消えますが、shは シェルなのか、それともコマンドなのかどちらなの でしょうか? 手元にあるlinuxの入門書には「shはシェルの一種である」 と記述があります。googleで検索をしてみましたが、 コマンドであるような記述もあり、混乱しております。 また、その入門書には「シェルを切り替えるには、コマンドライン でシェルの名前を入力します。exitコマンドで、元のシェル に戻ります」とあり、その文章の下には実際にshと打ち込んでexit で元に戻る様が書いてあるので実際に試してみました。 [root@localhost ~]# sh sh-3.2# exit exit [root@localhost ~]# この記述のせいでますますわからなくなりました。 なお、最後のbinがシェルスクリプトであることは理解して おります。 ご存じの方、ご教授頂ければ幸いです。何卒宜しくお願い申し 上げます。

  • [linux]bcコマンドについて

    linuxでシェルスクリプトを作っています.その際,実数の計算をやる必要があって,bcコマンドを使ってやろうとしていますが有効数字の指定(length)の指定の仕方が分かりません. したい計算は,以下のようなものです.(有効数字3桁で計算させたいのですが,.22222と表示され整数部の0が表示されません.) yByD=` echo "length = 3; 2 * 3 / 27 " | bc` ネットやマニュアル等を見ても情報が得られません.誰かご存知の方ご教示よろしくお願いします.

  • Linuxのコマンドについて

    閲覧ありがとうございます。 最近学校でLinuxについて勉強を始めました。 宿題のプリントが出されたのですが全く分かりません。 答えまたはコマンドのことを詳しく説明されているサイトがあればを教えて下さい。 ・/の下にあるフォルダー数は? ・現フォルダーのファイルの一覧を作成された時間順(古い方)に表示するコマンド ・「cp/etc/hosts」を実行したら、hostsというファイルはどこにコピーされるか ・もともと二つのファイル「A」「B」が存在するとき、「mv A B」というコマンドの効果は?警告は出ましたか? 宜しくお願いしますm(_ _)m