Linux:: コンテンツフィルタリングコマンド [3]: grepコマンド [詳細説明]: 指定したファイル内の検索情報をフィルタリングして、指定した文字列を含むコンテンツを(あいまいに)検索します! (例:システム障害時の動作ログ情報の確認等)

はじめに: この記事は Linux の基本操作の章の内容です。
私が使用している環境は Tencent Cloud Server: CentOS 7.6 64bit をベースとしています。


学習セット:


注: find コマンドと grep コマンドはインタビューで頻繁に言及されるため、類似点と相違点について答える必要があります。


ディレクトリ インデックス:
1. 基本的な構文、関数、および使用法
2. 基本的な使用例: 検索コンテンツのフィルタリング
3. "-v": 指定されたコンテンツ出力を逆にフィルタリングします
4. その他の単純なオプション パラメータ
4.1 "-i": 大文字と小文字を区別しませんフィルター検索
4.2 "-j": 行番号をついでに出力
5. 補足説明: 関連する正規表現
6. おすすめの関連記事・シリーズ


1. 基本的な構文、関数、使い方

1.1 基本的な構文

基本構文: grep [オプション] 文字列ファイルを検索します

1.2 機能と使い方

機能: ファイル内の文字列を検索し、見つかった行を出力します。


使い方(2種類):

  • grepはファイルを指定する文字列を指定します
  • cat はファイルを指定 | grep は文字列を指定 [この方法はパイプと組み合わせて使用​​します! ]
    (使用方法については、この記事の2 番目のポイントを参照してください)

2. 基本的な使用例: コンテンツを検索するためのフィルター

テストケースの生成

/* 拷贝数据集文件用于测试,注:若无该文件集可使用如下指令生成:
	count=0; while [ $count -le 100 ]; do echo "hello ${count}"; let count++; done > file.txt
*/
[Mortal@VM-12-16-centos test_findsome]$ cd ~
[Mortal@VM-12-16-centos ~]$ ls
StudyingOrder_Linux  test1  test2  test3  test_cp  test_findsome  test_mkdir  test_mv  test_txtfile
[Mortal@VM-12-16-centos ~]$ ls test_txtfile
file.txt  filetxt.txt  main.c
[Mortal@VM-12-16-centos ~]$ cp test_txtfile/file.txt test_findsome/grep_test.txt
[Mortal@VM-12-16-centos ~]$ cd test_findsome/

検索コンテンツをフィルタリングします。つまり、指定された文字列を含むコンテンツを (あいまいに) 検索します。

/* 方式一:grep 指定字符串 指定文件 */
[Mortal@VM-12-16-centos test_findsome]$ grep "0" grep_test.txt 
hello 0
hello 10
hello 20
hello 30
hello 40
hello 50
hello 60
hello 70
hello 80
hello 90
hello 100

/* 方式二:cat 指定文件 | grep 指定字符串【该方式结合管道使用!】 */
[Mortal@VM-12-16-centos test_findsome]$ cat grep_test.txt | grep "0"
hello 0
hello 10
hello 20
hello 30
hello 40
hello 50
hello 60
hello 70
hello 80
hello 90
hello 100

3. "-v": 指定されたコンテンツ出力を逆にフィルタリングします。

-v: はオプションのオプションで、その機能は選択を反転すること、つまり「検索文字列」の内容を含まない行を表示することです。

/* 方式一:grep 指定字符串 指定文件 */
[Mortal@VM-12-16-centos test_findsome]$ grep -v "0" grep_test.txt 
hello 1
hello 2
hello 3
hello 4
hello 5
hello 6
hello 7
.../* 数据过多,省略不复制出来 */

/* 方式二:cat 指定文件 | grep 指定字符串【该方式结合管道使用!】 */
[Mortal@VM-12-16-centos test_findsome]$ cat grep_test.txt | grep -v "0"
hello 1
hello 2
hello 3
hello 4
hello 5
hello 6
hello 7
.../* 数据过多,省略不复制出来 */

4. その他の簡単なオプションパラメータ

4.1 "-i": 大文字と小文字を区別しないフィルター検索

  • grep -i はファイルを指定する文字列を指定します
  • cat はファイルを指定 | grep -i は文字列を指定 [この方法はパイプと組み合わせて使用​​します!

4.2 "-j": 行番号をついでに出力する

  • grep -n はファイルを指定する文字列を指定します
  • cat はファイルを指定 | grep -n は文字列を指定 [この方法はパイプと組み合わせて使用​​します。

5. 補足説明: 関連する正規表現

今回は上記の内容を簡単に紹介していきます!この記事は今後も随時更新していきます!

注: grep コマンドは、ワイルドカード/正規表現などもサポートするようになりました。

例: cat grep_test.txt | grep -v "hello 9[0-5]"

[Mortal@VM-12-16-centos test_findsome]$ cat grep_test.txt | grep 'hello 9[0-5]'
hello 90
hello 91
hello 92
hello 93
hello 94
hello 95

6. 関連記事またはシリーズの推奨事項

1. Linux学習ディレクトリコレクション;


2. Linux :: [基本コマンド:: 検索/クエリコマンド: (1)]:: どのコマンド: システムファイル指定(コマンド) 検索コマンド | クエリコマンドのエイリアス 3. Linux:: ファイル検索コマンド[2]
: find コマンド (キーポイント): ファイル ツリー内のファイル (指定されたパス/ディレクトリ) を検索し、対応する処理 (場合によってはディスクにアクセス) を実行するために使用されます [ナレッジ システムで継続的に更新されます]


おすすめ

転載: blog.csdn.net/weixin_53202576/article/details/131154357