この記事を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」関連の製品

Webサイト構築プラットフォーム「RCMS」 【ディバータ】 マルチエンジン型ウイルス対策ソフトウェア 「Metascan」 【ネクスト・イット】 サイボウズ ガルーン 4(ワークフロー) 【サイボウズ】
CMS アンチウイルス ワークフロー
豊富な標準機能が強みの国産CMS。コーポレート、求人、情報配信、EC・ポータルなど、多岐に渡るサイトの構築・運用管理を得意とし、2000社以上への導入実績がある。 最大30種類のウイルススキャンエンジンを動作させ、マルウェアの検出率を最大限に高めたウイルス対策ソリューション。インターネット接続ができない閉環境でも使用が可能。 低コストかつ柔軟に構築できる、汎用性の高いワークフローシステム。グループウェアとの連携により、スピーディーかつ漏れのない申請・承認プロセスを実現する。

Linux」関連の特集


大陸間データ伝送で約150Gbpsの速度を実現し世界最高記録を樹立!その立役者となった新ファイル転送…



さらなる高速サーバ登場を前に、ますます関心の高まるPCサーバの仮想化ソフトについて、現状と基本をご紹…



1台で、メールも電話もネットもできる!?マルチなツールとしても、業務端末にも使える最新PDA/スマー…


Linux」関連のセミナー

ID棚卸の自動化を実体験! ID棚卸キットハンズオンセミナー 【主催:アシスト】  

開催日 6月6日(水)   開催地 東京都   参加費 無料

ID棚卸に多大な工数をかけていませんか?各サーバーOS、業務システムに存在する固有のID情報を把握するにはIDの棚卸が必要です。この作業は、監査の指摘事項にもな…

IPv6ハンズオン〜サーバ編〜 【日本ネットワークインフォメーションセンター】  

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

●概要IPv6の実践的な設定ができる技術者の育成を目的にした、 仮想マシンを利用した基礎的な内容の演習です。 Linux (CentOS 6)を用いた、 各種サ…

IPv6ハンズオン〜サーバ編〜 【日本ネットワークインフォメーションセンター】  

開催日 6月28日(木)   開催地 東京都   参加費 有料 4万円(税込)

●概要IPv6の実践的な設定ができる技術者の育成を目的にした、 仮想マシンを利用した基礎的な内容の演習です。 Linux (CentOS 6)を用いた、 各種サ…

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

このページの先頭へ

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


Myリストへ

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


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


30008288


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

このページの先頭へ

キーマンズネットとは

ページトップへ