GNU/Linux >> Linux の 問題 >  >> Linux

grep:コマンドが見つかりません

最も基本的な形式の grep コマンドは、検索ツールです。検索や検索とは異なり、ファイル名の検索に限定されません。ファイルの内容から特定のテキスト文字列を検索するために最もよく使用されます。出力として、grep は、検索パターンが見つかったファイルの各行全体を表示します。このようにして、grep を使用して、テキスト ファイルを処理し、最も関連性の高い内容を読み取ることができます。たとえば、アクセス ログを見て、ユーザーのログイン イベントを監査したい場合があります。ログ全体を読んだり、テキスト エディターで検索語を入力したりする代わりに、grep コマンドを使用して、関連するすべての行を画面に出力するだけです。

構文

grep コマンドの構文は次のとおりです。

# grep [options] {search pattern} {file names}

grep を使用してファイルを検索する

ファイルの内容を検索するだけでなく、grep を使用してディレクトリを検索し、特定のファイルを見つけることができます。 ls -l | grep audit コマンドは、現在のディレクトリ内にある名前に「audit」が含まれるファイルの長いリストを返します。

検索を逆にしたい場合 (パターンに一致しない行を出力する場合)、-v パラメーターを使用します。

$ grep -v t file1
one
four
five
$

一致するパターンが見つかった行番号を見つける必要がある場合は、-n パラメータを使用してください:

$ grep -n t file1
2:two
3:three
$

一致するパターンを含む行数を確認するだけの場合は、-c パラメータを使用します:

$ grep -c t file1
2
$

複数の一致パターンを指定する必要がある場合は、-e パラメータを使用して個々のパターンを指定します。

$ grep -e t -e f file1
two
three
four
five
$

grep コマンドの実行中に以下のエラーが発生した場合:

grep: command not found

選択したディストリビューションに従って、以下のパッケージをインストールしてみてください:

OS 分布 コマンド
OS X brew install grep
Debian apt-get インストール grep
Ubuntu apt-get インストール grep
アルパイン apk add grep
Arch Linux pacman -S grep
カリ Linux apt-get インストール grep
CentOS yum install grep
Fedora dnf install grep
Raspbian apt-get インストール grep

grep コマンドの例

1. PATTERN を拡張正規表現として解釈するには:

# grep --extended-regexp PATTERN
# grep -E PATTERN 

2. PATTERN を固定文字列のリストとして解釈するには:

# grep -F PATTERN
# grep --fixed-strings PATTERN 

3. PATTERN を基本的な正規表現として解釈するには:

# grep -G PATTERN
# grep --basic-regexp PATTERN 

4. PATTERN を Perl 正規表現として解釈するには:

# grep -P PATTERN
# grep --perl-regexp PATTERN 

5. パターンとして PATTERN を使用するには:

# grep -e PATTERN, 
# grep --regexp=PATTERN 

6. FILE からパターンを取得するには、1 行に 1 つずつ:

# grep -f FILE, --file=FILE

7. PATTERN ファイルと入力ファイルの両方で大文字と小文字の区別を無視するには:

# grep -i PATTERN
# grep --ignore-case PATTERN

8. 一致の意味を反転するには、一致しない行を選択するには:

# grep -v PATTERN
# grep --invert-match PATTERN 

9. 単語全体を形成する一致を含む行のみを選択するには:

# grep -w PATTERN
# grep --word-regexp PATTERN

10. 行全体に完全に一致する一致のみを選択するには:

# grep -x PATTERN
# grep --line-regexp PATTERN 

11. ケースを無視するには:

# grep -y PATTERN 

12. 通常の出力を抑制する。代わりに、一致する行の数を出力します:

# grep -c PATTERN
# grep --count PATTERN 

13. カラーで表示するには:

# grep --color PATTERN 

14. 通常の出力を抑制する。代わりに、各入力ファイルの名前を出力します。from out は期待されません:

# grep -L
# grep --files-without-match 

15. 通常の出力を抑制する。代わりに、出力が出力された各入力ファイルの名前を出力します:

# grep -l
# grep --files-with-matches 

16.静かにする;標準出力には何も書き込まないでください。一致するものが見つかった場合は、ステータス 0 ですぐに終了します:

# grep -q 
# grep --quiet
# grep --silent 

17. 一致する NUM 行後にファイルの読み取りを停止するには:

# grep -m NUM
# grep --max-count=NUM 

18. 一致する行の一致した (空でない) 部分のみを印刷するには:

# grep -o PATTERN
# grep --only-matching PATTERN 

19. 存在しない、または読み取れないファイルに関するエラー メッセージを非表示にするには:

# grep -s PATTERN
# grep --no-messages PATTERN 

20. 出力の各行の前に、入力ファイル内の 0 ベースのバイト オフセットを出力するには:

# grep -b PATTERN
# grep --byte-offset PATTERN 

21. 各試合のファイル名を印刷するには:

# grep -H PATTERN
# grep --with-filename PATTERN

22. 出力時にファイル名のプレフィックスを抑制するには:

# grep -h PATTERN
# grep --no-filename PATTERN 

23. 実際には標準入力からの入力を、ファイル LABEL からの入力として表示するには:

# grep -cd PATTERN | grep --label=mysearch -H PATTERN 

24. 入力ファイル内で、出力の各行の前に 1 から始まる行番号を付けるには:

# grep -n PATTERN
# grep --line-number PATTERN 

25. 実際の行コンテンツの最初の文字がタブ位置にあることを確認するには:

# grep -T PATTERN
# grep --initial-tab PATTERN 

26. Unix スタイルのバイト オフセットを報告するには:

# grep -u PATTERN
# grep --unix-byte-offsets PATTERN 

27. 通常ファイル名に続く文字の代わりに 0 バイトを出力するには:

# grep -Z PATTERN
# grep --null PATTERN

28. 一致した行の後に NUM 行の後続コンテキストを出力するには:

# grep -A NUM PATTERN
# grep --after-context=NUM PATTERN 

29. 一致する行の前に先頭のコンテキストの NUM 行を印刷するには:

# grep -B NUM PATTERN
# grep --before-context=NUM PATTERN 

30. 出力コンテキストの NUM 行を印刷するには:

# grep -C NUM PATTERN
# grep --context=NUM PATTERN 

31. バイナリ ファイルをテキストのように処理するには:

# grep -a PATTERN /tmp/bin
# grep -text PATTERN /tmp/bin 

32. ファイルのタイプが TYPE であると仮定するには:

# grep --binary-files=TYPE PATTERN 

33. 入力ファイルがデバイス、FIFO、またはソケットの場合は、ACTION を使用して処理します:

# grep -D ACTION PATTERN
# grep --devices=ACTION PATTERN 

34. 入力ファイルがディレクトリの場合は、ACTION を使用して処理します:

# grep -d ACTION PATTERN
# grep --directories=ACTION PATTERN 

35. ベース名が GLOB に一致するファイルをスキップするには:

# grep --exclude=GLOB PATTERN 

36. ベース名が FILE から読み取ったファイル名グロブのいずれかと一致するファイルをスキップするには:

# grep --exclude-from=FILE PATTERN 

37. 再帰検索からパターン DIR に一致するディレクトリを除外するには:

# grep --exclude-dir=DIR PATTERN

38. 一致するデータが含まれていないかのようにバイナリ ファイルを処理するには:

# grep -I PATTERN

39. ベース名が GLOB に一致するファイルのみを検索するには:

# grep --include=GLOB 

40. 各ディレクトリの下にあるすべてのファイルを再帰的に読み取るには:

# grep -r PATTERN
# grep -R PATTERN 

41. 出力で行バッファリングを使用するには:

# grep --line-buffered PATTERN 

42. 可能であれば、デフォルトの読み取りではなく、mmap システム コールを使用して入力を読み取ります:

# grep --mmap PATTERN 

43. ファイルをバイナリとして扱うには:

# grep -U /tmp/file PATTERN
# grep --binary /tmp/file PATTERN 

44. 入力を一連の行として扱うには:

# grep -z PATTERN
# grep --null-data PATTERN 

45. ヘルプを表示するには:

# grep -h 

46. grep のバージョン番号を出力するには:

# grep -V 


Linux
  1. ifrename:コマンドが見つかりません

  2. dpkg:コマンドが見つかりません

  3. netstat:コマンドが見つかりません

  1. kubectl:コマンドが見つかりません

  2. tvservice:コマンドが見つかりません

  3. lspci:コマンドが見つかりません

  1. nc:コマンドが見つかりません

  2. pstree:コマンドが見つかりません

  3. ln:コマンドが見つかりません