Grepを介して試合の前後に行を表示する

Show Lines Before After Match Via Grep



Grepは、Linuxシステムで、いくつかのファイルを操作したり、特定のパターンを検索したりするときに広く使用されています。今回は、grepコマンドを使用して、特定のファイルで使用されている一致したキーワードの前後の行を表示しています。この目的のために、チュートリアルガイド全体で-A、-B、および-Cフラグを使用します。したがって、理解を深めるために各ステップを実行する必要があります。 Ubuntu 20.04Linuxシステムがインストールされていることを確認してください。

まず、grepでの作業を開始するには、Linuxコマンドラインターミナルを開く必要があります。コマンドラインターミナルを開いた直後は、現在、Ubuntuシステムのホームディレクトリにいます。したがって、以下のlsコマンドを使用して、Linuxシステムのホームディレクトリにあるすべてのファイルとフォルダを一覧表示してみてください。そうすれば、すべてを取得できます。ご覧のとおり、いくつかのテキストファイルといくつかのフォルダがリストされています。







ls



例01:「-A」と「-B」の使用

上に示したテキストファイルから、これらのいくつかを見て、grepコマンドをそれらに適用しようとします。下にある人気のあるcatコマンドを使用して、最初にテキストファイルone.txtを開きます。



$one.txt





以下のようにgrepコマンドを使用して、このテキストファイルで特定の単語が一致することを最初に確認します。 grep命令を使用して、テキストファイルone.txtでweという単語を検索しています。出力には、テキストファイルからの2行が表示されます。

$グリップ私たちone.txt



したがって、この例では、一部のテキストファイルで特定の単語の一致の前後の行を表示します。したがって、同じテキストファイルone.txtを使用して、次のようにその前の3行を表示しながら単語weと一致させています。フラグ-BはBeforeを表します。ファイルには特定の単語の行の前にそれ以上の行がないため、出力には特定の単語の行の前に2行しか表示されません。また、その特定の単語が含まれている行も表示されます。

$グリップ-NS3私たちone.txt

このファイルの同じキーワードweを使用して、weという単語が含まれる行の後に3行を表示します。フラグ-AはAfterを示します。ファイルにそれ以上の行がないため、出力には2行しか表示されません。

$グリップ-に3私たちone.txt

そこで、新しいキーワードを使用して照合し、それが存在する行の前後の行または行を表示してみましょう。ですから、私たちは「一致することができる」という言葉を使用してきました。この場合、行番号は同じです。一致した単語の後の3行は、grepコマンドを使用して下に表示できます。

$グリップ-に3できますone.txt

キーワードcanを使用すると、一致した単語の行の前に出力が表示されます。対照的に、一致した単語の前には2行しか表示されないため、前に2行しか表示されません。

$グリップ-NS3できますone.txt

例02:「-A」と「-B」の使用

ホームディレクトリから別のテキストファイルtwo.txtを取得し、以下のcatコマンドを使用してその内容を表示してみましょう。

$two.txt

grepコマンドを使用して、ファイルtwo.txtのMostという単語の前に5行を表示してみましょう。出力には、特定の単語が含まれる前の5行が表示されます。

$グリップ-NS5ほとんどのtwo.txt

テキストファイルtwo.txtのMostという単語の後に5行を表示するgrepコマンドを以下に示します。

$グリップ-に5ほとんどのtwo.txt

検索するキーワードを変更してみましょう。今回はマッチングするキーワードとしてを使用します。以下のgrepコマンドを使用して、テキストファイルtwo.txtからの単語を実行する前に2行を表示します。ファイルに2回含まれているため、出力にはキーワードofの2行が表示されます。したがって、出力には3行以上が含まれます。

$グリップ-NS2two.txtの

以下のコマンドを使用して、のキーワードを含む行の後にファイルtwo.txtの2行を表示できます。出力には再び3行以上が表示されます。

$グリップ-に2two.txtの

例03:「-C」の使用

別のフラグ-Cは、一致した単語の前後の行を表示するために使用されています。 catコマンドを使用して、ファイルone.txtの内容を表示してみましょう。

$one.txt

マッチングするキーワードとして社会を選びます。以下のgrepコマンドは、societyという単語を含む行の前の2行と後の2行を表示します。出力には、特定の単語行の前に1行、その後に2行が表示されます。

$グリップ-NS2社会one.txt

以下のcatコマンドを使用して、ファイルtwo.txtの内容を確認してみましょう。

$two.txt

この図では、一致するキーワードとして詩を使用しています。したがって、これに対して以下のコマンドを実行します。出力には、一致した単語の前に2行、後に2行が表示されます。

$グリップ-NS2詩two.txt

照合するファイルtwo.txtからもう1つのキーワードを使用してみましょう。今回は自然をキーワードとして消費しています。したがって、ファイルtwo.txtのキーワードの性質を持つフラグとして-Cを使用しながら、以下のコマンドを試してください。今回は、出力に3行以上が含まれています。ファイルには「自然」という単語が複数回含まれているため、その背後にある理由があります。最初に来るキーワードnatureには、前後に2行あります。 2番目は同じキーワードに一致しましたが、natureの前には2行ありますが、ファイルの最後の行にあるため、後の行はありません。

$グリップ-NS2詩two.txt

結論

grep命令を使用しながら、特定の単語の前後の行を表示することに成功しました。