grepでテキストファイルを活用する−UnixコマンドをWindowsで使う(grep) | ミニミニ管理者(システム管理者/社内SE/CIO)の独り言

[ ミニミニ管理者の独り言コマンドプロンプト(DOS/バッチ) > grepでテキストファイルを活用する−UnixコマンドをWindowsで使う(grep) ]
スポンサードリンク

grepでテキストファイルを活用する−UnixコマンドをWindowsで使う(grep)

JUGEMテーマ:コンピュータ

Windowsにはない「便利で実用的なUNIXコマンド」を活用する方法を紹介。
今回は、「grep」というUNIXコマンドで「指定したフォルダ内にあるファイル内の特定の文字列を含む行を表示」する方法を紹介する。Windowsでは「grep」コマンドを使わない場合には「秀丸」を使って同じ機能を使うことができるが、DOSに慣れているシステム管理者にとっては「grep」単体のほうが便利。

■UnxUtilsダウンロード
UNIXコマンドをWindows用(32bit)で実行できるようにリコンパイルしたもの。
Source Forge(ダウンロード/英語サイト)
※下記で紹介する「grep」は日本語対応した別のユーティリティなので上記サイトにあるのは英語版の「ggrep」のみ。使い方は同じ。

■UNIXコマンドの基本的な使い方
使い方はDOSコマンドと同じだ。コマンドと引数(オプション)を渡して、処理結果が表示される。dosコマンドとの主な違いを下記する。
・UNIXなので文字コードが「utf-8」だから「日本語表示が文字化け」する。
・ヘルプの表示は「--help」。(日本語ローカライズの「grep」のみ「?」)
・複数のUNIXコマンドを「|」で連結して使える。
 例)C:¥>pclip | wc -l


■指定したフォルダ内にあるファイル内の特定の文字列を含む行を表示(grep)
指定したフォルダ「 c:¥souko¥」にある特定のファイル「*.csv」に含まれる文字列「 802001110052」を含む行を表示することができる。「-o」オプションで行の先頭に「ファイル名」を表示している。

システム管理者の現場での使い方のイメージとしては、他システムにインターフェースするテキスト(csv)データの中に「見積NO:802001110052」を含むデータがあるか?を調べることで「見積データが正しくインターフェースされたかを確認できる」といった具合である。また、引数「-d」を追加すると「サブフォルダ」も参照するようになるので、指定したフォルダの配下を全て検索する。

--------------------------------------------------------------------------------
C:¥>grep 802001110052 c:¥souko¥*.csv -o
c:¥souko¥nyukoyotei_20111028_164059.csv:"802001110052","A01111000679","",
c:¥souko¥shukkoyotei_20111028_164231.csv:"802001110052","","80200111005201",
--------------------------------------------------------------------------------

ファイルのフルパスと該当する行を全て表示する。
また、このほかのオプションで「-l」を使うと指定したフォルダにあるファイルに文字列「802001110052」が含まれるファイル名をフルパスで全て表示する。

--------------------------------------------------------------------------------
C:¥>grep 802001110052 c:¥souko¥*.csv -l
File c:¥souko¥nyukoyotei_20111028_164059.csv:
File c:¥souko¥shukkoyotei_20111028_164231.csv:
--------------------------------------------------------------------------------


ヘルプ表示
--------------------------------------------------------------------------------
C:¥>grep ?
Turbo GREP 5.5 Copyright (c) 1992, 2000 Inprise Corporation
Syntax:  GREP [-rlcnvidzuwo] searchstring file[s] or @filelist

Options are one or more option characters preceded by "-", and optionally
followed by "+" (turn option on), or "-" (turn it off).  The default is "+".
   -r+  Regular expression search       -l-  File names only
   -c-  match Count only                -n-  Line numbers
   -v-  Non-matching lines only         -i-  Ignore case
   -d-  Search subdirectories           -z-  Verbose
   -e   Next argument is searchstring   -w-  Word search
   -o-  UNIX output format                   Default set: [0-9A-Z_]
   -q-  Quiet: supress normal output
   -u xxx Create a copy of grep named 'xxx' with current options set as default

A regular expression is one or more occurrences of:  One or more characters
optionally enclosed in quotes.  The following symbols are treated specially:
      ^  start of line             $  end of line
      .  any character             ¥ quote next character
      *  match zero or more        +  match one or more
      [aeiou0-9]   match a, e, i, o, u, and 0 thru 9 ;
      [^aeiou0-9]  match anything but a, e, i, o, u, and 0 thru 9
--------------------------------------------------------------------------------




スポンサードリンク


■Blog Ranking■
1. ←←サーバー構築・運用ブログあり お奨め:★★★★★
2. (ブログランキング ドット ネット)
3.にほんブログ村 IT技術ブログへにほんブログ村
4.BS blog Ranking
ブログランキングに挑戦中です。あなたもブログランキングに挑戦してみよう!
サーバー構築・運用ブログなんかもありますのでシステム管理者の方にもお奨めのサイトがあり!
ソニーストア
ボーズ・インイヤーヘッドホン

コメント
コメント投稿フォーム:
 上の情報を次回も利用する

トラックバック
トラックバックURL:
※ クリックで選択できます。
トラックバック一覧: