GNU / Linuxなどの無料オペレーティングシステムの「grep」コマンドは、非常に価値があり便利なコマンドです。 その名前は英語のフレーズ«GlobalRegular Expression Print»に由来し、1つまたは複数のテキストファイルの検索パターンまたは正規表現を検索、照合、および表示するタスクを実行するために使用されます。
基本的に、コマンド«grep»は、コマンドコマンドのパラメーターに示されているパターンを検索し、コマンドコマンドのパラメーターの指示に従って得られた結果を出力します。、次のいずれかになります。画面または出力ファイル。
「grep」コマンドの概要
このような同じブログの他の以前の出版物ですでに«上のいくつかの基本的なコマンド...»このすばらしいコマンドの基本的な使用法についてコメントしましたが、 この出版物では、特定の実際のタスクを容易にすることができる機能的で便利なコマンドコマンド内での「grep」コマンドのより中級および高度な使用法を紹介します。 シェルスクリプト内またはターミナルで直接実行して、実行する特定のタスクでより迅速な結果を達成します。
実例
私たちの位置/場所を見る
印刷 グラフィカルディレクトリツリーを使用した現在のディレクトリの内容:
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
例:
30文字の長さのランダムパスワードを生成します
/ dev / urandom内にランダムな文字列を生成し、最初の1文字のサイズの条件で、英数字のみの«grep»コマンドを使用したフィルタリングを使用して単一の文字列を選択して表示し、すべての改行を削除します。
strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo
例:
接続のグラフィカルな要約を生成する
グラフ形式(表)で表示し、特定の時間にホストの「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 "" }'
例:
以下に示すように、接続のタイプごとの接続数の要約テーブルを生成するためにも使用できます。
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c
例:
パス内の文字列(パターン)を検索する
ファイル名またはファイルコンテンツ内のパターンのすべての一致を見つけて表示します。 これを実現するためのパラメータの使用は次のとおりです。-R(サブディレクトリの繰り返し)、-n(一致の行番号を表示)、-i(大文字と小文字を無視)、-s(「抑制」は存在しないメッセージ「And」はできません読む ")、-I(検索でバイナリを無視する)。
grep -RnisI *
コマンドプロンプト内で「find」コマンドを使用して事前定義されたファイルタイプ内のパターンを検索する場合は、より高度な方法で使用することもできます。 以下に示すように:
find /opt/MilagrOS -name "*.txt" -exec grep -RnisI "MilagrOS" {} \;
RAMメモリ内のデータ量を知る
これは、ハードディスクへの書き込みを待機しているデータ(情報)の量を正確に知るのに役立ち、コンピューターの再起動またはシャットダウンを強制する必要があります。
grep ^Dirty /proc/meminfo
私たちのWANIPアドレスを知っている
端末からWANIPを自動的に認識し、そのパラメーターを別の自動化されたタスクに渡すことは、常に非常に役立ちます。 この例では、DynDNSサービスを利用して取得します。
curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"
ネットワークセグメントに接続されている機器を一覧表示します
「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コマンドを使用したコマンドラインのこれらの例。 また、コンソールから直接使用することも、スクリプトに挿入することで間接的に使用することもできます(自動タスク)。
シェルスクリプトに関する次の投稿では、他のコマンドについて説明します。
«grep»コマンドについてもう少し詳しく知りたい場合は、このリンクにアクセスしてください«DEBIAN Wiki»そして、私たち自身のブログでシェルスクリプトについてもっと学びたいのなら、ここをクリックすると、このテーマに関する他の出版物を見ることができます。 スクリプト作成 DesdeLinux
記事は素晴らしいです、どうもありがとうございました。
どういたしまして、それは喜びです! コマンドSedが付属しています。