0Pricing
Linux Command Line & Bash Scripting Mastery · レッスン

ファイルの検索(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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ファイル内容の表示(cat、less、head、tail)
  2. ファイル権限の理解(chmod、chown)
  3. ファイルの検索(find、grep)
  4. リンクの作成:ハードリンクとシンボリックリンク
← Linux Command Line & Bash Scripting Masteryに戻る