この記事を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フィルタリングソフト InterSafe WebFilter 【アルプス システム インテグレーション】 ITサービス管理ソフトウェア WebSAM IT Process Management 【NEC】 Mendix App Platform(超高速開発ツール、モデル駆動) 【ビルドシステム】
フィルタリング サービスデスク 開発ツール
Webの閲覧やSNS、Webメール等の利用を規制・管理するソフトウェア。携帯キャリア独占の高品質データベースと使いやすさにこだわったログ分析機能を搭載。 システム運用で起こる日々の事象を、ITILに基づき管理し、運用の効率化と品質向上を実現するITサービス管理ソフトウェア。ITサービス管理プロセスの効率的な運用を支援。 ソースコードを記述することなくアプリケーションを作成できる超高速開発ツール。モバイルアプリから、IoT、Cognitive対応のアプリまで、専門知識なしで容易に作成。

Linux」関連の特集


「検索サイトで“グループウェア”と叩いて各社の製品をチェック…」その選び方ではアナタの会社にぴったり…



 前回は「ポートホッピング」や「Anonymousプロキシ」を例にセキュリティの回避手法を解説した。…



1回のID/パスワード入力で、複数のアプリケーションを利用できるシングルサインオン。今回は、その仕組…


Linux」関連のセミナー

IPv6対応セミナー(金沢) 【一般社団法人日本ネットワークインフォメーションセンター】 締切間近 

開催日 7月7日(金)   開催地 石川県   参加費 無料

日本においても、この1年でIPv6インターネットへの対応が着実に進んでおり、NTT東日本、西日本が提供するフレッツ光ネクストのIPv6契約率が2017年3月末時…

クラウド対応に向けた既存システム環境の移行セミナー 【日本ヒューレット・パッカード/レッドハット】  

開催日 7月11日(火)   開催地 東京都   参加費 無料

クラウドの活用の検討に伴い、既存システムの移行はIT部門の課題となっています。オープンソースのOSやミドルウェアへ移行することは、クラウド活用の障壁を低くする第…

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

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

●対象者:IPv4サーバの運用経験がある方、Linuxの運用経験がある方●難易度:★★★☆☆●内容:IPv6の実践的な設定ができる技術者の育成を目的にした、 仮…

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

このページの先頭へ

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


Myリストへ 印刷用ページへ

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


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


30008288


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

このページの先頭へ

キーマンズネットとは

ページトップへ