ファイルの検索(find、grep)
'find'や'grep'などの強力なコマンドを使い、システム全体からファイルやファイル内の特定のテキストパターンを探す方法を学びます。
「ファイルの検索(find、grep)」はCoddyKit上の無料Linux Command Line & Bash Scripting Masteryレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Command Line & Bash Scripting Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。
Linuxで検索する理由
Linuxでは、ファイルやテキストを探す作業を日常的に行います。大きなプロジェクトの中から、特定の設定ファイルやコードの1行を見つける必要がある場面を想像してみてください。
ここでは、ファイルやディレクトリを探すfindと、ファイルの内部からテキストパターンを検索するgrepという、2つの強力なコマンドを学びます。
`find`コマンドを使う
findコマンドは、ディレクトリ階層内のファイルやディレクトリを検索します。非常に柔軟なコマンドです。
基本的な構文はfind [path] [expression]です。[path]はfindが検索を開始する場所を指定し、[expression]は何を探すかを定義します。
名前でファイルを探す
findで最もよく使われる方法は、-nameオプションで名前を指定して検索することです。*のようなワイルドカードも使えます。
現在のディレクトリにある、末尾が.txtのファイルをすべて探してみましょう。
cd /tmp
touch report.txt document.pdf notes.txt
find . -name "*.txt"種類でファイルを探す
-typeオプションを使うと、findが探すエントリの種類を指定できます。
- 通常のファイルには
f - ディレクトリには
d
現在の場所にあるディレクトリをすべて探してみましょう。
cd /tmp
mkdir mydir anotherdir
touch file.txt
find . -type dサイズでファイルを探す
大きなファイルを探す必要がありますか。-sizeオプションを使いましょう。c(バイト)、k(KB)、M(MB)、G(GB)などの単位を指定できます。
+10M: 10MBより大きい-5k: 5KBより小さい100c: ちょうど100バイト
1KBより大きいファイルを探してみましょう。
cd /tmp
dd if=/dev/zero of=small_file bs=100 count=1 2>/dev/null
dd if=/dev/zero of=large_file bs=2k count=1 2>/dev/null
find . -size +1k`grep`の紹介
findがファイルを探すのに対し、grep(Global Regular Expression Print)は、ファイルの内部から特定のテキストパターンを検索します。
基本的な構文はgrep [pattern] [file...]です。[pattern]は探すテキスト、[file...]は検索対象のファイルを表します。
単純なテキストを`grep`で検索する
簡単なテキストファイルを作成し、grepを使ってその中の単語を探してみましょう。grepは、パターンを含むすべての行を出力します。
cd /tmp
echo "Hello CoddyKit learners!" > greeting.txt
echo "This is a great lesson." >> greeting.txt
echo "CoddyKit is fun." >> greeting.txt
grep "CoddyKit" greeting.txt`grep`のオプション: -iと-n
grepで便利な2つのオプションを紹介します。
-i: 検索時に大文字と小文字を区別しません。-n: 一致した行の行番号を表示します。
「coddykit」を大文字と小文字を区別せずに検索し、行番号も確認してみましょう。
cd /tmp
echo "Hello CoddyKit learners!" > greeting.txt
echo "This is a great lesson." >> greeting.txt
echo "coddykit is fun." >> greeting.txt
grep -i -n "coddykit" greeting.txt`find`と`grep`を組み合わせる
findとgrepを組み合わせると、ファイルとその内容を検索できます。findの-execオプションを使うと、見つかった各ファイルに対して別のコマンドを実行できます。
ここでは、すべての.txtファイルを見つけ、その中から「CoddyKit」を検索します。
cd /tmp
echo "Hello CoddyKit" > file1.txt
echo "Hello World" > file2.txt
echo "CoddyKit rocks" > file3.txt
find . -name "*.txt" -exec grep -l "CoddyKit" {} +クイックチェック
複数のファイルがあるディレクトリがあります。50KBより大きく、名前がlog.txtまたはerror.logであるすべてのファイルを見つけるには、どのコマンドを使えばよいでしょうか。
復習: ファイルを検索する
よくできました。Linuxでファイルとその内容を効率的に検索する方法を学びました。
find: 名前、種類、サイズなど、さまざまな条件に基づいてファイルやディレクトリを探します。grep: ファイルの内部から特定のテキストパターンを検索します。大文字と小文字を区別しない検索や、行番号の表示もできます。findとgrepを組み合わせて、強力な内容検索を行う方法も学びました。
これらのコマンドを繰り返し練習して、Linuxの操作スキルを身につけましょう。
よくある質問
「ファイルの検索(find、grep)」レッスンは無料ですか?
はい。「ファイルの検索(find、grep)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Command Line & Bash Scripting Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。
「ファイルの検索(find、grep)」で何を学びますか?
'find'や'grep'などの強力なコマンドを使い、システム全体からファイルやファイル内の特定のテキストパターンを探す方法を学びます。 ブラウザで直接実行するハンズオンコードでLinux Command Line & Bash Scripting Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Linux Command Line & Bash Scripting Masteryを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLinux Command Line & Bash Scripting Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「ファイルの検索(find、grep)」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLinux Command Line & Bash Scripting Masteryレッスンでコードを書いて実行できますか?
はい。すべてのLinux Command Line & Bash Scripting Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。