Grep:Grepターミナルコマンドを使用したシェルスクリプティングの学習

grepコマンド

ターミナルコマンドを使用したシェルスクリプトの学習:grep

GNU / Linuxなどの無料オペレーティングシステムの「grep」コマンドは、非常に価値があり便利なコマンドです。 その名前は英語のフレーズ«GlobalRegular Expression Print»に由来し、1つまたは複数のテキストファイルの検索パターンまたは正規表現を検索、照合、および表示するタスクを実行するために使用されます。

基本的に、コマンド«grep»は、コマンドコマンドのパラメーターに示されているパターンを検索し、コマンドコマンドのパラメーターの指示に従って得られた結果を出力します。、次のいずれかになります。画面または出力ファイル。

「grep」コマンドの概要

このような同じブログの他の以前の出版物ですでに«上のいくつかの基本的なコマンド...»このすばらしいコマンドの基本的な使用法についてコメントしましたが、 この出版物では、特定の実際のタスクを容易にすることができる機能的で便利なコマンドコマンド内での「grep」コマンドのより中級および高度な使用法を紹介します。 シェルスクリプト内またはターミナルで直接実行して、実行する特定のタスクでより迅速な結果を達成します。

実例

私たちの位置/場所を見る

印刷 グラフィカルディレクトリツリーを使用した現在のディレクトリの内容:

ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'

例:

Grep:ツリーのようなディレクトリ

30文字の長さのランダムパスワードを生成します

/ dev / urandom内にランダムな文字列を生成し、最初の1文字のサイズの条件で、英数字のみの«grep»コマンドを使用したフィルタリングを使用して単一の文字列を選択して表示し、すべての改行を削除します。

strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo

例:

Grep:パスワードを生成する

接続のグラフィカルな要約を生成する

グラフ形式(表)で表示し、特定の時間にホストの「netstat」コマンドによって検出された内部および外部ネットワーク接続の数を要約します。

netstat -an | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | awk '{ printf("%s\t%s\t",$2,$1) ; for (i = 0; i < $1; i++) {printf("*")}; print "" }'

例:

Grep:Netstat接続グラフ

以下に示すように、接続のタイプごとの接続数の要約テーブルを生成するためにも使用できます。

netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c

例:

Grep:Netstatを使用したサマリーテーブル

パス内の文字列(パターン)を検索する

ファイル名またはファイルコンテンツ内のパターンのすべての一致を見つけて表示します。 これを実現するためのパラメータの使用は次のとおりです。-R(サブディレクトリの繰り返し)、-n(一致の行番号を表示)、-i(大文字と小文字を無視)、-s(「抑制」は存在しないメッセージ「And」はできません読む ")、-I(検索でバイナリを無視する)。

grep -RnisI  *

Grep:ファイルやフォルダー内のパターンを検索する

コマンドプロンプト内で「find」コマンドを使用して事前定義されたファイルタイプ内のパターンを検索する場合は、より高度な方法で使用することもできます。 以下に示すように:

find /opt/MilagrOS -name "*.txt" -exec grep -RnisI "MilagrOS" {} \;

Grep:ファイル内のパターンを検索する

RAMメモリ内のデータ量を知る

これは、ハードディスクへの書き込みを待機しているデータ(情報)の量を正確に知るのに役立ち、コンピューターの再起動またはシャットダウンを強制する必要があります。

grep ^Dirty /proc/meminfo

Grep:RAM内のデータ

私たちのWANIPアドレスを知っている

端末からWANIPを自動的に認識し、そのパラメーターを別の自動化されたタスクに渡すことは、常に非常に役立ちます。 この例では、DynDNSサービスを利用して取得します。

curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"

Grep:WANIPを知っている

ネットワークセグメントに接続されている機器を一覧表示します

「ping」コマンドでforループを使用し、「grep」コマンドで結果をフィルタリングすることで、NMapツールを必要とせずに、pingサービスを有効にしてネットワークに接続されているコンピューターを検証できます。

for i in {1..10}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done

例:

トレースされたIPアドレスフィールドを一覧表示するには、次のように、「awk」および「cut」コマンドを使用して「grep」コマンドの結果をフィルタリングし、この行をより高度に使用できます。

for i in {100..110}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done | awk '{ print $4 }' | cut -d ":" -f 1

例:

Grep:LANIPリスト

grepコマンドを使用したコマンドラインのこれらの例。 また、コンソールから直接使用することも、スクリプトに挿入することで間接的に使用することもできます(自動タスク)。

シェルスクリプトに関する次の投稿では、他のコマンドについて説明します。

«grep»コマンドについてもう少し詳しく知りたい場合は、このリンクにアクセスしてください«DEBIAN Wiki»そして、私たち自身のブログでシェルスクリプトについてもっと学びたいのなら、ここをクリックすると、このテーマに関する他の出版物を見ることができます。 FromLinuxでのスクリプト


記事の内容は、次の原則に準拠しています。 編集倫理。 エラーを報告するには、 ここで.

2コメント、あなたのコメントを残してください

コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   レアンドロ

    記事は素晴らしいです、どうもありがとうございました。

  2.   Linuxポストインストール

    どういたしまして、それは喜びです! コマンドSedが付属しています。