この記事をtweetする このエントリーをはてなブックマークに追加

2015/10/29

NECマネジメントパートナーのLinux研修ネタ帳

自己紹介
吉政創成株式会社 吉政 忠志
主な経歴
吉政創成株式会社の代表取締役 兼 一般社団法人PHP技術者認定機構の理事長 兼 BOSS-CON JAPANの理事長 兼 Rails技術者認定試験運営委員会の委員長。国産ITベンチャー企業の支援に一念…

第2回 ”grepコマンド”で文字列検索

こんにちは。私が運営しているBOSS-CON JAPANというビジネスOSSの団体の会員であるNECマネジメントパートナーの堀様から表記のコラムを寄稿頂きましたので、ご紹介します。

■grepコマンドの使い方のお話 「この文字列見つけられますか?」

Linuxを操作する際に非常によく使い、便利なコマンドの1つに”grepコマンド”があります。grepコマンドは、引数に文字列のパターンを与えることでパターンにマッチする行を表示するコマンドです。ファイル中の文字列を検索したり、コマンドをパイプライン「|」でつなげて前のコマンドの出力から特定の文字列を探したりすることができます。では、簡単にご紹介しておきましょう(ご存知の方は、問題まで読み飛ばして下さい)。

grepコマンドの基本

grepコマンドは、引数に文字列のパターンとファイル名を渡すと、指定したファイルから指定の文字列を含む行を出力してくれます。例えば、/etc/passwd (システム上のユーザーを管理しているファイル)から rootユーザー (Linux上のシステム管理ユーザー)の情報を検索するには、rootという文字列を検索すればよいので以下のように実行します。

$ grep  root  /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

最近のディストリビューション(CentOS 7)では、grepコマンドに「grep --color=auto」のaliasが設定されているため、検索文字列に色がついて表示されます。検索結果を確認すると、rootユーザーの情報とoperatorユーザーの情報が表示されており、rootユーザー以外の情報も該当していることが分かります。

grepコマンドでは、検索文字列のパターンに正規表現を指定することができます。正規表現とはテキスト文字列を選択する際に用いるパターンで、記号を用いてさまざまな文字列パターンを指定することができます。正規表現で使用する代表的な記号には「^、$、.、[]、*、\」などがあり、次のような意味を持ちます。

/etc/passwdからrootユーザーの情報のみを検索する場合には、行頭にrootがくる行を検索すればよいので、次のようなコマンドラインになります。

$ grep  '^root'  /etc/passwd
root:x:0:0:root:/root:/bin/bash

行頭にrootの文字列がないoperatorユーザーが検索されず、rootユーザーの情報のみが表示されます。また、行の中に登場するrootの文字列に色がついていないことも分かります。
一般的にgrepコマンドの引数に記号を含む正規表現を指定する場合には、「'(シングルクォート)」か「"(ダブルクォート)」で文字列を囲います。これは、正規表現の部分をシェルに(なるべく)解釈されないようにするためです。

(なお、「'(シングルクォート)」で囲った場合にはシェルはその文字列をそのままコマンドに渡します。「"(ダブルクォート)」で囲った場合には、シェルは「*」や「?」などをファイル名には展開しませんが「\、$、`(バッククォート)」などの記号の特別な意味は解釈します)

問題:この文字列見つけられますか?

それでは、ここで問題です。次のような(いじわるな)内容のファイルstring.txtがあります。

$ cat  string.txt
* * .*. * *
\ \ A*A \ \
. .  \  . .
\ \ B*B \ \
.*. \\\ .*.
.*. -n- .*.

問題1. 「A*」を含む行を検索してください
問題2. 「.*」を含む行を検索してください
問題3. 「\\」を含む行を検索してください
問題4. 「-n-」を含む行を検索してください


いかがでしょうか? 実際にファイルを作成して、grepコマンドで検索してみるとよいですね。
それでは、回答です。

■問題1. 「A*」を含む行を検索してください

回答例1 以下のように実行します。  

…この記事の続きは、会員限定です。  会員登録はこちら(無料)

続きを読むには・・・

会員登録をすると自動的にこの記事に戻り、続きが読めます。

会員登録(無料)・ログイン

このページの先頭へ
関連キーワード

Linux/第2回 ”grepコマンド”で文字列検索」関連の情報を、チョイスしてお届けします

※キーマンズネット内の「Linux」関連情報をランダムに表示しています。

Linux」関連の製品

NIFTY Cloud/ニフティクラウド(パブリック型クラウドサービス) 【富士通クラウドテクノロジーズ】 データ連携ミドルウェア 「ASTERIA WARP」 【インフォテリア】 ネットワークフォレンジックサーバ 『NetEvidence Ax Ver.3.1』 【オーク情報システム】
IaaS/PaaS EAI フォレンジック
国内最大級!5,000件以上の導入実績を誇るパブリッククラウド
◆卓越したパフォーマンスと信頼性・柔軟性
◆24h/365日対応の電話サポート
◆使いやすいコントロールパネル
企業内の様々なデータをノン・プログラミングで高速・簡単に連携するデータ連携ミドルウェア。
5,000社以上への導入実績を持ち、9年連続国内シェアNo.1を獲得。
全インターネット通信を記録・保存し、有事の際に漏えい源を追跡できるネットワークフォレンジックサーバ。メールの添付ファイルも掲示板の書込み内容も検索・確認できる。

Linux」関連の特集


マルチベンダ環境や年代モノまで、個性際立つシステム群の健全な運用を支えるならコレ!基礎から最新事情を…



企業内にあるOSSの運用を快適にするために、オープンソースサポートサービスの基本から注目したいサービ…



Windows Server 2008に標準搭載されたNAPにより活気づく「検疫ネットワーク」。この…


Linux」関連のセミナー

UNIXハンズオン ゼロから覚えるコマンドライン 【日本ネットワークインフォメーションセンター】  

開催日 2月7日(水)   開催地 東京都   参加費 有料 4万円(税込)

●概要: UNIXの操作や設定では、コマンドラインインタフェースが多用されます。 最近ではグラフィカルなインタフェースが用意されることも多くなりましたが、 まだ…

Armadillo-440 で学ぶ!Linux動的解析メソッド 【ハートランド・データ】  

開催日 1月26日(金)   開催地 東京都   参加費 無料

大規模・複雑化の傾向があるLinux開発の環境で、不具合解析をいかに効率化するか、悩まれていませんか?その悩み、DT10で解決しましょう!本セミナーは、実際にA…

DRBD入門セミナー(受講無料、半日コース) 【サードウェア】  

開催日 11月10日(金),12月14日(木),1月23日(火)   開催地 東京都   参加費 無料

DRBDの機能と特徴、高可用クラスタ、災害対策、ストレージソリューションなどの活用シーンを、講義形式で紹介します。新たに、DRBD9のdockerボリュームプラ…

「サーバー」関連 製品レポート一覧

このページの先頭へ

Linux/ 第2回 ”grepコマンド”で文字列検索」の記事を一部ご紹介しました。
会員登録を行い、ログインすると、「Linux/ 第2回 ”grepコマンド”で文字列検索」の記事の続きがお読みいただけます。


Myリストへ

この記事をtweetする このエントリーをはてなブックマークに追加


この記事に掲載している情報は、掲載日時点のものです。変更となる場合がございますのでご了承下さい。


30008288


IT・IT製品TOP > 中堅中小企業 > サーバー > Linux > LinuxのIT特集 > 特集詳細

このページの先頭へ

キーマンズネットとは

ページトップへ