コマンドラインツールの検索コマンド find および grep

ファイルの内容を取得する grep コマンド

grep コマンドを使用して、ファイルの内容を取得します。次に例を示します。

「」

grep "検索語" file.txt

「」

このコマンドは、file.txt 内で「検索語」を含む行を検索し、ターミナルに出力します。検索は、さまざまなオプションとパラメーターを使用してさらにカスタマイズできます。

ディレクトリ内のすべてのファイルを検索し、各ファイルに特定のコンテンツが含まれているかどうかを確認する場合、どのコマンドを使用しますか?

次のコマンドを使用すると、ディレクトリ内のすべてのファイルを検索し、各ファイルに特定のコンテンツが含まれているかどうかを取得できます。

「」

grep -r "何を探すか" /path/to/directory

「」

このうち、`-r` はディレクトリ内のすべてのファイルを再帰的に検索することを意味し、`"what to find"` は検索する内容、`/path/to/directory` は検索するディレクトリのパスです。

このコマンドは、指定されたコンテンツを含むすべてのファイルをディレクトリ内で検索し、コンテンツを含むファイル パスと行番号を出力します。検索したい内容が正規表現の場合は、「-E」パラメータを使用して正規表現を展開できます。


find ディレクトリ名検索コマンド

次のコマンドを使用してディレクトリ名を見つけることができます。

1. 現在のディレクトリの下でディレクトリ名を見つけます。

「」

find . -type d -name "ディレクトリ名"

「」

2. 指定したディレクトリの下でディレクトリ名を見つけます。

「」

find /path/to/directory -type d -name "ディレクトリ名"

「」

このうち、「ディレクトリ名」は検索したいディレクトリの名前、「/path/to/directory」は検索したいディレクトリのパスです。

このコマンドは、指定されたディレクトリの下にあるすべてのディレクトリを再帰的に検索し、指定された名前に一致するすべてのディレクトリを返します。


sedファイルの操作

sed は、テキストの変換と置換に使用できるストリーム エディタです。その使用シナリオには次のものが含まれます。

1. テキストのバッチ置換: sed コマンドを使用して、ファイル内の指定したテキスト文字列を検索して置換できます。

2. テキストの抽出: sed コマンドを使用して、ファイルから指定したテキストの行またはブロックを抽出できます。

3. テキストの書式設定: sed コマンドを使用して、行番号やスペースなどの追加など、テキストの書式を設定できます。

4. テキストの削除: sed コマンドを使用して、ファイル内のテキストの指定した行またはブロックを削除できます。

5. その他の操作:​​ sed コマンドを使用して、並べ替え、重複排除、グループ化などの操作を実行することもできます。

sed コマンドの基本構文は次のとおりです。

sed [オプション] 'アクション' ファイル名

ここで、アクションとはテキストに対する操作であり、置換、削除、挿入などの操作が考えられます。filename は、処理するファイル名またはファイルのリストです。

一般的に使用される sed コマンド オプションには次のものがあります。

-i: ファイルの内容を直接変更します。

-n: sed によって処理された内容のみを出力します。

-e: 複数の sed コマンドを連続して使用できるようにします。

たとえば、ファイル内のすべての hello を world に置き換えるには、次のコマンドを使用できます。

sed -i 's/hello/world/g' ファイル名

このうち、s は置換操作を表し、g はグローバル置換を表します。


パイプライン | 接続操作

上記の find grep と sed はパイプライン | 操作をどのように使用して接続し、より複雑なファイル操作に結合しますか?

パイプ | 操作は、あるコマンドの出力を別のコマンドの入力として受け取ることができるため、パイプ操作を使用して find、grep、および sed を組み合わせて、次のようなより複雑なファイル操作を行うことができます。

1. find を使用してファイルを検索し、次に grep を使用して特定の文字列を含むファイルを除外し、最後に sed を使用して置換します。

「」

探す 。-タイプ f | grep "パターン" | sed 's/old/new/g'

「」

2. find を使用してファイルを検索し、次に sed を使用して置換操作を実行し、最後に grep を使用して置換後に特定の文字列を含むファイルをフィルタリングして除外します。

「」

探す 。-type f -exec sed -i 's/old/new/g' {} \; | grep「パターン」

「」

3. find を使用してファイルを検索し、次に sed を使用して置換操作を実行し、最後に grep を使用して置換後に特定の文字列を含まないファイルを除外します。

「」

探す 。-type f -exec sed -i 's/old/new/g' {} \; | grep -v "パターン"

「」

上記は単純な例にすぎませんが、実際には、特定のニーズに応じて、find、grep、および sed を組み合わせて、より複雑なファイル操作を実行できます。


よく使うファイル操作コマンド

find grep sed 以外に一般的に使用されるファイル操作コマンドはありますか? それらはリストされ、例とともに使用されていますか?

1. awk: テキスト処理に使用され、指定されたルールに従ってテキストのセグメント化、フィルタリング、計算などの操作を行うことができます。

例: ファイル内の各行の単語数を数える

「」バッシュ

awk '{print NF}' file.txt

「」

2. Cut: テキストから指定された列の内容を抽出するために使用されます。

例: ファイルの 1 列目と 3 列目の内容を抽出する

「」バッシュ

Cut -f1,3 file.txt

「」

3. ソート: テキストをソートするために使用されます。

例: 最初の列でソート

「」バッシュ

ソート -k1 file.txt

「」

4. uniq: 重複する行を削除するために使用されます。

例: ファイル内の重複行を削除する

「」バッシュ

固有ファイル.txt

「」

5. wc: ファイルの行数、ワード数、バイト数、その他の情報をカウントするために使用されます。

例: ファイル内の行数を数える

「」バッシュ

wc -l file.txt

「」

6. head: ファイルの最初の数行を表示するために使用されます。

例: ファイルの最初の 10 行を表示する

「」バッシュ

head -n 10 file.txt

「」

7. tail: ファイルの最後の数行を表示するために使用されます。

例: ファイルの最後の 10 行を表示する

「」バッシュ

tail -n 10 file.txt

「」

8. tee: コマンドラインで画面とファイルに同時に出力するために使用されます。

例: コマンドライン出力を画面とファイルに同時に出力する

「」バッシュ

ls | ティーファイル.txt

「」


より基本的なコマンドの比較表

コマンド名

効果

使用例

予防

CD

現在の作業ディレクトリを切り替える

CDドキュメント

パスは大文字と小文字が区別されます

ls

現在のディレクトリ内のファイルとフォルダーを表示します

ls -a

さまざまなパラメータを使用してさまざまな情報を表示できます

障害者

現在の作業ディレクトリのパスを表示します

障害者

なし

mkdir

新しいフォルダーを作成する

mkdir 新しいフォルダー

フォルダー名に特殊文字を含めることはできません

触る

新しいファイルを作成する

新しいファイル.txt にタッチします

ファイル名に特殊文字を含めることはできません

ファイルの内容を表示する

猫ファイル.txt

複数のファイルの内容を同時に表示できます

CP

ファイルまたはフォルダーをコピーする

cp file.txt new_file.txt

コピーするファイルまたはフォルダーが存在する必要があります

MV

ファイルまたはフォルダーを移動する

mv ファイル.txt ドキュメント/

宛先フォルダーが存在する必要があります

rm

ファイルまたはフォルダーを削除する

rm ファイル.txt

ファイルまたはフォルダーを削除すると復元できません

rmです

空のフォルダーを削除する

rmdir 空のフォルダー

削除できるのは空のフォルダーのみです

chmod

ファイルまたはフォルダーのアクセス許可を変更する

chmod 755 ファイル.txt

権限の概念とさまざまな権限の意味を理解する必要がある

grep

ファイル内の指定された文字列を検索します

grep "hello" file.txt

複数のファイルから指定した文字列を見つけることができます

おすすめ

転載: blog.csdn.net/u011024243/article/details/129617385