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

カード決済トランザクションシステム SEGTRAN 【セイコーソリューションズ】 かんたんWebデータベース【サイボウズ デヂエ 8】 【サイボウズ】 帳票電子活用ソリューション SVF PDF Archiver 【ウイングアーク1st】
特定業種向けシステム ナレッジマネジメント 帳票管理システム
カード・信販会社等に必須となるCAFISやCARDNETなど、カード決済業務に不可欠な対外接続機能を統合したオールインワンパッケージ。 クレーム管理や顧客管理などのアプリケーションを簡単な操作で構築できる、かんたんWebデータベース。 帳票の安全で効率的な保管・管理する帳票電子活用ソリューション。電子帳票ツールやドキュメント管理ツールでは対応が難しいPDF帳票の管理と検索ニーズに対応。

Linux」関連の特集


ビデオ会議システムやストリーミングなど、動画を伝送する仕組みの歴史を紐解きながらその起源に迫ります。



妻には絶対見られちゃいけないメール。間違いなく消去したはずなのに…なんて悲劇を巻き起こす、データ復元…



 前回、ブロックチェーンとは「台帳」を分散共有して管理する技術であり、その技術的要素として「分散台帳…


Linux」関連のセミナー

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

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

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

標的型攻撃やランサムウェアはもう怖くない! 【主催:アシスト】 締切間近 

開催日 12月8日(木)   開催地 東京都   参加費 無料

狙われたら防げない標的型サイバー攻撃、感染端末やファイルサーバの情報を人質にとられるランサムウェア、これらの脅威から情報を守るため「インターネット分離」を注目さ…

【東京開催】Linuxシステム管理者セミナー(応用編) 【デージーネット】 締切間近 

開催日 12月13日(火)〜12月14日(水)   開催地 東京都   参加費 有料 12万9600円(税込)

【東京開催】Linux システム管理者セミナー(応用編)〜不測の事態にも対応できるLinuxサーバの運用エキスパートを目指して〜<内容>本セミナーでは、実務に直…

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

このページの先頭へ

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


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

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


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


30008288


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

このページの先頭へ

キーマンズネットとは

ページトップへ