知っておくとちょっと便利!ファイル内の文字列を検索する grep コマンド

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【5/21開催】Azure OpenAI ServiceによるRAG実装ガイドを公開しました
生成AIを活用したユースケースで最も一番熱いと言われているRAGの実装ガイドを公開しました。そのガイドの紹介をおこなうイベントです!!
https://tech-lab.connpass.com/event/315703/

【5/27開催】事業変革を最新ソフトウェア技術で加速する「OSS利活用事例セミナー」
OSSのビジネス活用事例などを紹介します!登壇者はスカパー様やIPAなど🎤
OSSを活用した新たなビジネス創出やDX推進のヒントを得られる機会です。
https://ossforum.connpass.com/event/318583/
【6/19開催】Kong Community Japan Meetup #4
本イベントでは、Kong Inc. のVP of ProductであるReza Shafii氏もプレゼンターとして参加。当社からはアーキテクト マネージャーの槌野の登壇が決定!参加無料です!!
https://column.api-ecosystem.sios.jp/connect/kong/1081/

今号では、grep コマンドの使い方やオプションについてご紹介します!

grep コマンドとは

grep コマンドは、ファイルの内容から特定の文字列を検索する事ができるコマンドです。
find コマンドと似ていますが、大きな違いとしてはファイル内の文字列を検索できる点になります。

基本の書式

“grep <文字列> ファイル名” コマンドを実行すると、指定したファイルの中から文字列を検索します。
例えば、test.txt というファイルから abc という文字列を検索する場合、以下のようになります。

$ cat test.txt
abc
def
ghi
abcdefghi
$ grep abc test.txt
abc
abcdefghi

grep コマンドでは検索結果を行単位で表示するため、検索結果は abc が含まれる行 abcabcdefghi が該当します。

grep コマンドのオプション

次に、grep コマンドで使用可能なオプションをご紹介します。
オプションには多くの種類がありますが、よく使用されると考えられるものを抜粋してご紹介します。

  • 複数の文字列で検索する (or 検索)
    -e オプションを指定すると、検索したい文字列を複数指定できます (-e オプション 1つにつき、1つの文字列)。
    例えば、test.txt から ab または bc の、いずれかの文字を含む行を検索する場合、以下のようになります。

    $ grep -e ab -e bc test.txt
    abc
    abcdefghi
    

    なお、and 検索したい場合は | (パイプ) を使用し、ひとつめの grep コマンドの結果を次の grep コマンドへ渡すようにします。

    $ grep abc test.txt | grep def
    abcdefghi
    
  • 検索結果に行番号を表示する
    -n オプションを指定すると、検索結果に加えて行番号を表示します。
    例えば、test.txt から abc という文字列を検索した場合、検索結果の左側に該当する文字列の行番号 (今回の場合ですと 1と 4) が表示されます。

    $ grep -n abc test.txt
    1:abc
    4:abcdefghi
    
  • 一致しないものを検索する
    -v オプションを指定すると、条件に一致しない行のみを表示します。
    例えば、test.txt から -v オプション付きで abc という文字列を検索する場合、以下のように abc 以外の文字列を含む行のみが表示されます。

    $ grep -v abc test.txt
    def
    ghi
    
アバター画像
About 貝野 友香 73 Articles
OSSよろず相談室でサポートをやっています。時々ライブ配信や勉強会に出ていることもあります。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

1人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる