以下のようなcsvファイルがある時に


a,あ,1,11
b,い,2,22,ppp
c,う,3,33
d,え,4,44,444,ppp


ここから

b,い,2,22,ppp
d,え,4,44,444,ppp

とpppのついている行のみを抽出する方法をお教え願えますでしょうか

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/01/15 11:46:39
  • 終了:2008/01/16 08:46:05

回答(2件)

id:riatan No.1

riatan回答回数11ベストアンサー獲得回数02008/01/15 12:04:07

ポイント10pt

もしエクセルが使えるのでしたら、

そのCSVファイルをエクセルで開き、

どこか右のほうのあいている列に

=COUNTIF(A1:F1,"ppp")

といったような、その行全部が含まれる範囲を指定した関数を入れてみてください。

上記の例だと、A1~F1の範囲に"ppp"がある数を数えて表示します。

だから、

a,あ,1,11 の行では、0

b,い,2,22,ppp の行では、1

と表示されるはずです。

1つ上記の関数を入れたら、そのセルの右下にカーソルを合わせて、カーソルが十字の形になったら

そのまま下のほうにドラッグすると同じ関数をコピーすることができます。

これが終わると、関数を入れた列が0と1(または2以上)になると思いますので

上部メニューの「データ」→「フィルタ」→「オートフィルタ」をセットして

1の列を選択します。

2以上の列がある場合、オプションで「0以外」にする必要があります。

こんな感じですが、ものすごくわかりにくいですよね・・。すみません・・。

そもそもエクセルがなかったらもっとすみません・・。

http://kokoro.kir.jp/excel/countif.html

id:khoshi3 No.2

khoshi3回答回数71ベストアンサー獲得回数122008/01/15 12:15:10

ポイント60pt

普通にgrepで「grep ",ppp" csvfile.csv > result.csv」とするのはダメでしょうか?

UNIX系OSならふつーにgrepで、WindowsならcygwinかSFU(Service for UNIX)か、下記ソフト内のgrepコマンドでどうぞ。

  • JVim for Windows3.0-j2.0

http://www.vector.co.jp/download/file/win95/writing/fh131855.htm...

cygwin やSFUをご存知でなかったらこちらからどうぞ。:

http://ja.wikipedia.org/wiki/Cygwin

http://www.microsoft.com/japan/technet/interopmigration/unix/sfu...

ちなみに、もっとローテクでExcelで開いて「オートフィルタ」で抽出した後コピー、という方もいると思います。

id:porinki07

ありがとうございます。

grepでできました。

2008/01/15 12:21:53

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません