2008年12月24日

【サイト作成】csvファイルから特定の文字列を含む行だけを抽出

※新しい記事の方が敷居が低いかと思いますので、
よかったらご参照ください(2009.12.9)
【サイト作成】CSVファイルから特定の文字列を含む行を3ステップで抽出する方法


ご無沙汰してまーす(^^)nikiです。
なにかと慌しい日々が続きまして、気づくと1ヶ月近く放置(汗)。でもおかげさまで元気です。

さて本題。
csvファイルから、特定の文字列を含む行データだけを取り出したい!ってずっと思ってたんですよね。
やっとわかったので、ご紹介。
※書き直してみましたー(2008.12.25)

コマンドプロンプトで"findstr"コマンドを利用、というのがそのやり方。
以下手順です。

1)コマンドプロンプトを起動させる
※Windowsのスタート→すべてのプログラム→アクセサリ→コマンドプロンプト
で黒地に白文字の「昔のパソコン」風画面が出てきます

2)抽出元ファイルのあるフォルダへ移動する
※抽出元ファイルのあるフォルダの場所をまず調べます。
エクスプローラー(IEじゃなくてファイル一覧とか見るヤツね)で
ファイル名を右クリック→プロパティ
とすると、「場所」の項目がありますから、
C:¥Users¥ユーザ名>
の「>」の隣に
cd ファイルの場所
と書いてEnterキー。
これで、場所移動できます。
例:
C:¥Users¥niki>
に続けて
cd C:¥もしも¥商品データ
書いたらEnterキー。
すると
C:¥もしも¥商品データ>
という表示に変わります。これで移動成功。

3)findstr 抽出したい文字列 抽出元ファイル名 > 抽出先ファイル名
タイプミスなどがないことをたしかめてEnterキー。

例)
もしもさんからダウンロードしたarticles.csvファイルから、ブルガリのデータだけ抽出したい場合。
findstr ブルガリ articles.csv > ブルガリデータ.csv
などと書けばOKです。
出力先ファイル名は適当に好きな名前でOK。
ちなみに、
findstr "商品ID ブルガリ" articles.csv > ブルガリデータ.csv
と書けば、1行目の見出し行も一緒に書き出してくれますv

知ってる人にとっては、ほんの1行のコマンドですが、
知らなかった私には、ファイルからデータを抜き出すのって単純作業なのに結構時間かかってましたよ・・・

もちろん、csvファイル以外でも利用できるので、他にも便利な使い道があるかもしれません。
お役に立てば幸いです。

ではでは皆様、素敵なクリスマスをお迎えくださいませ〜★
メリークリスマス!
この記事へのコメント
お久しぶりです、koz2で〜す。

呪文がいっぱい♪
僕には理解できないようです(汗)

とりあえずメリークリスマス!
Posted by koz2 at 2008年12月24日 22:36
koz2さん、メリークリスマス〜♪

わからなかったですか・・すみません(>_<)
後で書き直してみます〜
Posted by niki at 2008年12月25日 06:10
エクセルならフィルタで指定の値を含むを使えば特定の文字列の入った行だけを表示できるのですが、ここに書いてある使い方と同じ?
(今更なコメントですが)
コマンドプロントはいろいろできて勉強したら便利機能たくさんありそう。
Posted by たんなぬ at 2011年07月30日 11:44
>たんなぬさん

初めまして、こんにちは。
コメントいただいていたことに今日気づきました。2ヶ月近くもほったらかしてしまってごめんなさい。

エクセルのフィルタ表示もとても便利な機能なので、それでOKな方には不要な記事かと思います・・・

ただ、抽出したcsvファイルはサイズも小さくなっているので、エクセルで開くとき軽いのは利点とは思ってます。

上記の記事内のリンク先の、バッチファイルを使った抽出方法もよろしければ試してみてくださいね。簡単ですので。

(でも、もう読んでくださってない気はとってもしますが・・・ほんとにごめんなさい)

Posted by niki at 2011年09月18日 22:49
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。