システム管理者にとって、テキストファイルの操作は一般的な現象です。何かをトラブルシューティングするために、ログファイルの山から特定のセクションを見つける必要があるかもしれませんか?または、重要な情報を含むドキュメントをすばやく見つける必要がありますか?
Linuxの場合、ファイル内のテキストを見つける方法はたくさんあります。組み込みのツールとサードパーティのアプリの両方を使用できます。 Linuxでファイル内のテキストを見つける方法を確認してください。
ファイル内のテキストの検索
検索を実行する必要のあるファイルの数に応じて、テキスト検索を実行するには、自動または手動の2つの方法があります。いくつかのテキストファイルを操作する必要がある場合は、手動検索の方が適しています。ただし、テキストファイルが数百ある場合は、自動検索が最も効率的です。
自動検索には、grepを使用します。 Grepは、Linuxディストリビューションにプリインストールされています。手動検索に関しては、最新のテキストエディタならどれでも問題ありません。
grepを使用してファイル内のテキストを検索する
Linuxでは、grepはテキストを検索するためのデフォルトのツールです。その名前は、正規表現のグローバル検索と一致する行の出力を表すedコマンドg / re / pに由来しています。最新のLinuxディストリビューションで利用できます。
Grepはコマンドラインツールです。コマンド構成は以下のとおりです。
$グリップ <オプション>> <正規表現>> <ファイルパス>>grepの名前が示すように、検索するパターンは正規表現を使用して記述されます。正規表現は、照合、検索、および管理するパターンを記述する特殊なタイプの文字列です。 grepと正規表現の詳細については、チェックアウトしてください。 正規表現でgrepとegrepを使用する 。
デモンストレーションの目的で、サンプルテキストファイルを入手します。この例では、 GNU General Public Licensev3.0テキストファイル 。
基本検索
grepを使用する基本的な方法は、基本的な文字列を検索することです。
次のgrepコマンドを見てください。テキストファイルでGNUという単語を検索します。
$グリップ 「GNU」lpg-3.0。txt
行番号を表示するには、-nフラグを使用します。
$グリップ -NSGNU gpl-3.0。txt
grepを使用して大文字と小文字を区別しない検索を実行するには、-iフラグを使用します。
$グリップ -nignu gpl-3.0。txt
検索の一致を表示したくない場合がありますが、状況によっては一致が発生したファイル名のみを表示したい場合があります。ファイル名のみを出力するには、-lフラグを使用します。ここで、アスタリスクは、現在のディレクトリ内のすべてのテキストファイルを使用することを示します。
$グリップ -NSgnu*
他のコマンドの出力をgrepにパイプすることもできます。
$猫lpg-3.0。txt| グリップ -NSGNU
正規表現
正規表現は、検索を微調整するスマートな方法を提供します。独自のルールがあります。ただし、アプリケーションやプログラミング言語が異なれば、正規表現の実装も異なります。 grepで使用できるいくつかの例を次に示します。
文字列が行の開始時に見つかることを定義するには、キャレット(^)記号を使用します。
$グリップ -NS^ GNU gpl-3.0。txt
文字列が行末にあることを定義するには、ドル記号($)を使用します。
$グリップ -NSto $ gpl-3.0。txt
パターンの特定の場所に任意の文字が存在する可能性があることを説明するには、ピリオド文字(。)を使用します。たとえば、G.Uという表現は、GとUの間に文字がある場合に有効です。
$グリップ -NSG.U gpl-3.0。txt
パターンの特定の場所に文字のサブセットが存在する可能性があることを説明するには、角かっこ([])を使用します。たとえば、式t [wo] oは、一致が2つだけに有効であることを示します。
$グリップ -NSNS[どこ]o gpl-3.0。txt
拡張正規表現
名前が示すように、拡張正規表現は、基本的な正規表現よりも複雑なことを実行できます。 grepで拡張正規表現を使用するには、-Eフラグを使用する必要があります。
$グリップ -生まれ <extended_regex>> <ファイル>>2つの異なる文字列を検索するには、OR演算子(|)を使用します。
$グリップ -生まれGNU|全般的|ライセンスgpl-3.0。txt
ファイル内のテキストの検索
さて、主要部分が来ます。検索を実行するようにファイルに手動でgrepに指示する代わりに、grepは自動的に検索を実行できます。次のコマンドでは、grepは現在のディレクトリで使用可能なすべてのテキストファイルを使用してパターンを検索します。
$グリップ <正規表現>> *別のディレクトリで検索を実行するためにgrepを実行する場合は、場所を指定する必要があります。
$グリップ <正規表現>> <directory_path>>
フォルダがある場合、grepはデフォルトでそれらを探索しません。 grepに再帰的に検索するように指示するには、-Rフラグを使用します。
$グリップ -nR <正規表現>> <directory_path>>
グリップGUI
GUIを使用したいが、それでもgrepの機能を楽しみたい場合は、searchmonkeyをチェックしてください。これはgrepのフロントエンドソリューションです。このパッケージは、ほとんどすべての主要なLinuxディストリビューションで利用できます。
nanoを使用してファイル内のテキストを検索する
GNU Nanoは、Linuxディストリビューションに付属するシンプルで強力なテキストエディタです。テキストファイル内のテキストを検索する機能が組み込まれています。
この方法では、テキストファイルを開いて、手動で検索する必要があることに注意してください。使用できるテキストファイルがほんの一握りであれば、それは実行可能です。それ以上ある場合は、grepを使用するのが最適な選択です。
nanoでテキストファイルを開きます。
$ナノ <ファイルパス>>
一致する文字列を検索するには、Ctrl + Wを押します。検索する文字列を入力した後、Enterキーを押します。
Vimを使用してファイル内のテキストを検索する
Vimは有名で評判の良いテキストエディタです。これは、最新のテキストエディタに相当するコマンドラインです。 Vimには、プラグイン、マクロ、オートコンプリート、フィルターなど、多数の高度な機能が付属しています。
nanoと同様に、Vimは一度に1つのファイルで動作します。複数のテキストファイルがある場合は、grepを使用するのが最適な方法です。
テキストファイルを検索するには、まずVimで開きます。
$私が来た <ファイルパス>>
次のVimコマンドを入力し、Enterキーを押します。
$:/<検索語>>
GNOMEテキストエディタを使用してファイル内のテキストを検索する
GNOMEテキストエディターは、GNOMEデスクトップに付属のテキストエディターです。これは、期待するすべての基本機能を備えた単純なテキストエディタです。これは、コマンドラインテキストエディタの優れた代替手段です。
nanoやvimと同様に、この方法にも同じ注意が適用されます。テキストファイルの数が多い場合は、grepを使用することをお勧めします。
テキストエディタでテキストファイルを開きます。 Ctrl + Fを押して、検索バーを表示します。
VSCodeを使用してファイル内のテキストを検索する
Visual Studio Codeは、多数の機能を備えた強力なテキストエディターです。プログラマー向けに最適化されており、本格的なIDEのように使用できます。ほぼすべての主要なLinuxディストリビューションで利用できます。
Visual StudioCodeスナップパッケージをインストールします。
$sudoスナップインストールコード - クラシック
VSCodeでテキストファイルを開きます。 Ctrl + Fを押して検索を開始します。
最終的な考え
ファイル内のテキストを検索する方法は多数あります。習得するのは簡単な作業です。 grepコマンドは、効率と使いやすさの点で最大の価値を提供するため、習得することを強くお勧めします。
GUIを好む場合は、多数のテキストエディタから選択できます。最新のテキストエディタは、テキスト検索オプションを提供します。
ハッピーコンピューティング!