1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Linux】less・grepを徹底的に解説!コマンド一覧やコマンド例でわかりやすく

Last updated at Posted at 2025-11-27

はじめに

実務でもよくlessやgrepコマンドは使います。毎日のようにコマンドを叩いていれば頭よりも先に手が勝手に動いてコマンドを叩けるのですが、ちょっとコマンドを叩かないうちに、「あれ?どうやってコマンド打つんだっけ?」となるので、lessやgrepコマンドで困ったときは、この記事を参照すれば全て解決できる!という意味で記事を作成しました。
>>>私が運営するブログはこちら。メインは技術ブログですが、副業やポイ活についても紹介!

大量のサンプルログ

lessコマンドやgrepコマンドを練習するにあたり、サンプルログを4種類用意しました。

laravel.log
[2022-02-06 02:48:07] local.ERROR: SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = blogs and table_name = migrations and table_type = 'BASE TABLE') {"exception":"[object] (Illuminate\\Database\\QueryException(code: 2002): SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = blogs and table_name = migrations and table_type = 'BASE TABLE') at /var/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php:712)
[stacktrace]
#0 /var/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php(784): Illuminate\\Database\\Connection->runQueryCallback('select * from i...', Array, Object(Closure))
#1 /var/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php(764): Illuminate\\Database\\Connection->tryAgainIfCausedByLostConnection(Object(Illuminate\\Database\\QueryException), 'select * from i...', Array, Object(Closure))
#2 /var/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php(675): Illuminate\\Database\\Connection->handleQueryException(Object(Illuminate\\Database\\QueryException), 'select * from i...', Array, Object(Closure))
#3 /var/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php(376): Illuminate\\Database\\Connection->run('select * from i...', Array, Object(Closure))
#4 /var/www/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php(44): Illuminate\\Database\\Connection->select('select * from i...', Array)
#5 /var/www/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php(169): Illuminate\\Database\\Schema\\MySqlBuilder->hasTable('migrations')
#6 /var/www/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(652): Illuminate\\Database\\Migrations\\DatabaseMigrationRepository->repositoryExists()
#7 /var/www/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(106): Illuminate\\Database\\Migrations\\Migrator->repositoryExists()
#8 /var/www/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(77): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->prepareDatabase()
#9 /var/www/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(585): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->Illuminate\\Database\\Console\\Migrations\\{closure}()
#10 /var/www/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(94): Illuminate\\Database\\Migrations\\Migrator->usingConnection(NULL, Object(Closure))
#11 /var/www/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->handle()
#12 /var/www/vendor/laravel/framework/src/Illuminate/Container/Util.php(40): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#13 /var/www/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\\Container\\Util::unwrapIfClosure(Object(Closure))
#14 /var/www/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Illuminate\\Foundation\\Application), Array, Object(Closure))
#15 /var/www/vendor/laravel/framework/src/Illuminate/Container/Container.php(653): Illuminate\\Container\\BoundMethod::call(Object(Illuminate\\Foundation\\Application), Array, Array, NULL)
#16 /var/www/vendor/laravel/framework/src/Illuminate/Console/Command.php(136): Illuminate\\Container\\Container->call(Array)
#17 /var/www/vendor/symfony/console/Command/Command.php(298): Illuminate\\Console\\Command->execute(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle))
#18 /var/www/vendor/laravel/framework/src/Illuminate/Console/Command.php(121): Symfony\\Component\\Console\\Command\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle))
#19 /var/www/vendor/symfony/console/Application.php(1015): Illuminate\\Console\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#20 /var/www/vendor/symfony/console/Application.php(299): Symfony\\Component\\Console\\Application->doRunCommand(Object(Illuminate\\Database\\Console\\Migrations\\MigrateCommand), Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
data.log
hokkaido
aomori
iwate
yamagata
hukushima
miyagi
nigata
toyama
saitama
tokyo
aichi
okayama
osaka
hyogo
nagano
gunma
yamanashi
shizuoka
gihu
ishikawa
hukui
tochigi
ibaraki
hukuoka
kumamoto
kagoshima
okinawa
error.log
[2022-03-24 18:11:42] local.ERROR: Undefined variable $page {"view":{"view":"/var/www/resources/views/app.blade.php","data":{"errors":"<pre class=sf-dump id=sf-dump-1110990079 
data-indent-pad=\"  \"><span class=sf-dump-note>Illuminate\\Support\\ViewErrorBag</span> {<a class=sf-dump-ref>#304</a><samp data-depth=1 class=sf-dump-expanded>
[2022-03-24 18:19:56] local.ERROR: View [layouts.app] not found. {"view":{"view":"/var/www/resources/views/top.blade.php","data":{"errors":"<pre class=sf-dump id=sf-dump-1527968188 data-indent-pad=\"  \"><span class=sf-dump-note>Illuminate\\Support\\ViewErrorBag</span> {<a class=sf-dump-ref>#304</a><samp data-depth=1 class=sf-dump-expanded>
[2022-03-24 19:02:16] local.ERROR: View [header] not found. {"view":{"view":"/var/www/resources/views/layouts/common.blade.php","data":{"errors":"<pre class=sf-dump id=sf-dump-446646137 data-indent-pad=\"  \"><span class=sf-dump-note>Illuminate\\Support\\ViewErrorBag</span> {<a class=sf-dump-ref>#304</a><samp data-depth=1 class=sf-dump-expanded>
[2022-03-25 01:05:00] local.ERROR: View [footer] not found. {"view":{"view":"/var/www/resources/views/top.blade.php","data":{"errors":"<pre class=sf-dump id=sf-dump-1884878951 data-indent-pad=\"  \"><span class=sf-dump-note>Illuminate\\Support\\ViewErrorBag</span> {<a class=sf-dump-ref>#304</a><samp data-depth=1 class=sf-dump-expanded>
[2022-03-25 01:05:29] local.ERROR: Undefined property: Illuminate\View\Factory::$startSection {"view":{"view":"/var/www/resources/views/components/footer.blade.php","data":{"errors":"<pre class=sf-dump id=sf-dump-357600466 data-indent-pad=\"  \"><span class=sf-dump-note>Illuminate\\Support\\ViewErrorBag</span> {<a class=sf-dump-ref>#304</a><samp data-depth=1 class=sf-dump-expanded>
[2022-03-26 16:12:28] local.ERROR: View [layouts.common] not found. {"view":{"view":"/var/www/resources/views/top.blade.php","data":{"errors":"<pre class=sf-dump id=sf-dump-405570418 data-indent-pad=\"  \"><span class=sf-dump-note>Illuminate\\Support\\ViewErrorBag</span> {<a class=sf-dump-ref>#302</a><samp data-depth=1 class=sf-dump-expanded>
[2022-03-26 16:39:48] local.ERROR: View [components.sidebar] not found. {"view":{"view":"/var/www/resources/views/top.blade.php","data":{"errors":"<pre class=sf-dump id=sf-dump-270753157 data-indent-pad=\"  \"><span class=sf-dump-note>Illuminate\\Support\\ViewErrorBag</span> {<a class=sf-dump-ref>#304</a><samp data-depth=1 class=sf-dump-expanded>
[2022-03-27 13:00:01] local.ERROR: Undefined variable $page {"view":{"view":"/var/www/resources/views/layouts/main.blade.php","data":{"errors":"<pre class=sf-dump id=sf-dump-787196643 data-indent-pad=\"  \"><span class=sf-dump-note>Illuminate\\Support\\ViewErrorBag</span> {<a class=sf-dump-ref>#329</a><samp data-depth=1 class=sf-dump-expanded>
[2022-03-27 13:00:10] local.ERROR: Undefined variable $page {"view":{"view":"/var/www/resources/views/layouts/main.blade.php","data":{"errors":"<pre class=sf-dump id=sf-dump-168221982 data-indent-pad=\"  \"><span class=sf-dump-note>Illuminate\\Support\\ViewErrorBag</span> {<a class=sf-dump-ref>#329</a><samp data-depth=1 class=sf-dump-expanded>
[2022-03-27 13:00:39] local.ERROR: Undefined variable $page {"view":{"view":"/var/www/resources/views/layouts/main.blade.php","data":{"errors":"<pre class=sf-dump id=sf-dump-23
[2022-03-27 13:00:39] local.ERROR: Undefined variable $page {"view":{"view":"/var/www/resources/views/layouts/main.blade.php","data":{"errors":"<pre class=sf-dump id=sf-dump-236149045 data-indent-pad=\"  \"><span class=sf-dump-note>Illuminate\\Support\\ViewErrorBag</span> {<a class=sf-dump-ref>#329</a><samp data-depth=1 class=sf-dump-expanded>
[2022-03-27 13:01:34] local.ERROR: Undefined variable $page {"view":{"view":"/var/www/resources/views/layouts/main.blade.php","data":{"errors":"<pre class=sf-dump id=sf-dump-1411043516 data-indent-pad=\"  \"><span class=sf-dump-note>Illuminate\\Support\\ViewErrorBag</span> {<a class=sf-dump-ref>#329</a><samp data-depth=1 class=sf-dump-expanded>
[2022-03-27 13:01:45] local.ERROR: Undefined variable $page {"view":{"view":"/var/www/resources/views/layouts/main.blade.php","data":{"errors":"<pre class=sf-dump id=sf-dump-1122182679 data-indent-pad=\"  \"><span class=sf-dump-note>Illuminate\\Support\\ViewErrorBag</span> {<a class=sf-dump-ref>#329</a><samp data-depth=1 class=sf-dump-expanded>
[2022-03-27 14:11:34] local.ERROR: Undefined variable $page {"view":{"view":"/var/www/resources/views/layouts/main.blade.php","data":{"errors":"<pre class=sf-dump id=sf-dump-1189042780 data-indent-pad=\"  \"><span class=sf-dump-note>Illuminate\\Support\\ViewErrorBag</span> {<a class=sf-dump-ref>#321</a><samp data-depth=1 class=sf-dump-expanded>
server.log
ユーザー1がアクセス
ユーザー1が登録処理を実行
500 ERROR:DBエラーです
404 ERROR:ページがありません
409 ERROR:更新失敗エラーです
403 ERROR:権限エラーです
400 ERROR:バリデーションエラーです

lessとは

指定したファイルを1画面ずつ表示します。
一度に全てのファイルを読み込むわけではないので、catと比べて軽量です。
大量ファイルを開くときは、lessコマンドでファイルを開くようにしましょう。

例えば、lessコマンドでファイルを開くときは下記のように実行します。

コマンド例
-- 基本
less {ファイル名}

-- 例
less laravel.log

-- 複数ファイルの場合
less {ファイル1} {ファイル2} ...

-- 複数ファイルの例
less error.log laravel.log

lessコマンド一覧表

コマンド コマンド説明
-N 行番号を表示
-M ファイル名、出力している行数/全ての行数、行数の進捗率を表示
-m 行数の進捗率だけ表示
-S 長い行の折り返しをせずに1行で表示
&検索文字 指定した文字列のみを抽出して表示
/ + 検索文字 文字列を検索
n 検索文字の次の候補を表示
N 検索文字の前の候補を表示
[Shift] + g ファイルの最終行まで一気に移動
g ファイルの先頭行まで一気に移動
f 次のページへ移動
b 前のページへ移動
:n 次のファイルへ移動
:p 前のファイルへ移動
q ファイルを閉じる

-N 行番号を表示

行番号を表示する。
※-Nを実行後、コマンドをもう一度実行するともとに戻る。

パターン①

コマンド
less -N {ファイル名}
コマンド例
less -N laravel.log

パターン②

コマンド
lessでファイルを開いた後、-Nを実行
コマンド例
-N

出力例
下記のように、ログの左に行数が表示されます。1行のログが長いと、同じ行数の番号が表示されます。

スクリーンショット 2025-11-24 19.34.17.png

-M ファイル名や全体の行数や行数の進捗率を表示

ファイル名、出力行数/全ての行数、行数の進捗率を表示
※-Mを実行後、コマンドをもう一度実行するともとに戻る。

パターン①

コマンド
less -M {ファイル名}
コマンド例
less -M laravel.log

パターン②

コマンド
①lessでファイルを開く
②-Mを実行
コマンド例
-- lessでファイルを開く
less laravel.log

-- -Mを実行
-M

出力例
ターミナルの画面下を見ると、laravel.log lines 1-1/23 49%と表示されているのが確認できます。
※スクロールすると、行数だったり進捗率の%が100%に近づきます。

スクリーンショット 2025-11-25 20.07.27.png

-m 行数の進捗率を表示

行数の進捗率だけ表示
※-mを実行後、コマンドをもう一度実行するともとに戻る。

パターン①

コマンド
less -m {ファイル名}
コマンド例
less -m laravel.log

パターン②

コマンド
①lessでファイルを開く
②-mを実行
コマンド例
-- lessでファイルを開く
less laravel.log

-- -mを実行
-m

出力例
ターミナルの画面下を見ると、49%と表示されているのが確認できます。
※スクロールすると、進捗率の%が100%に近づきます。

スクリーンショット 2025-11-25 20.13.44.png

-S 長い行の折り返しをせずに1行で表示

長い行の折り返しをせずに1行で表示
※-Sを実行後、コマンドをもう一度実行するともとに戻る。

パターン①

コマンド
less -S {ファイル名}
コマンド例
less -S laravel.log

パターン②

コマンド
①lessでファイルを開く
②-Sを実行
コマンド例
-- lessでファイルを開く
less laravel.log

-- -Sを実行
-S

出力例
下記のように、画面右側に>が現れ、1行で表示されるようになります。
→スクロールすると、ログの内容を確認できます。

スクリーンショット 2025-11-25 21.42.23.png

+'&検索文字' 指定した文字列のみを抽出して表示

指定した文字列のみを抽出して表示

パターン①

コマンド
less +'&検索文字' laravel.log
コマンド例
less +'&NULL' laravel.log

パターン②

コマンド
①lessでファイルを開く
②&検索文字を実行
コマンド例
-- lessでファイルを開く
less laravel.log

-- &検索文字を実行
&NULL

出力例
下記のように、NULLの文字を含む行を抽出します。
※&を再度実行すると、もとに戻ります。

スクリーンショット 2025-11-25 21.47.56.png

/ + 検索文字 文字列を検索

文字列を検索する。

コマンド
①lessでファイルを開く
②/検索文字を実行
コマンド例
-- lessでファイルを開く
less laravel.log

-- /検索文字を実行
/console

出力例
下記のように、文字列を検索でき、ヒットした文字列があると背景白くなったりします。

スクリーンショット 2025-11-25 23.54.33.png

n 検索文字の次の候補を表示

/ + 検索文字実行後、検索文字の次の候補を探す。

コマンド
①lessでファイルを開いた後、/検索文字を実行する。
②nを押下すると、次の候補に移動する。
コマンド例
n

出力例
下記のように、文字列を検索後、nを押すと次の候補に移動してくれる。

スクリーンショット 2025-11-25 23.54.33.png
nを押して、次のconsoleがある行に移動する。
スクリーンショット 2025-11-25 23.59.21.png

N 検索文字の前の候補を表示

/ + 検索文字実行後、検索文字の前の候補を探す。

コマンド
①lessでファイルを開いた後、/検索文字を実行する。
②Nを押下すると、前の候補に移動する。
コマンド例
N

出力例
下記のように、文字列を検索後、Nを押すと前の候補に移動してくれる。

スクリーンショット 2025-11-26 0.01.16.png
Nを押して、前のconsoleがある行に移動する。
スクリーンショット 2025-11-25 23.59.21.png

[Shift] + g ファイルの最終行まで一気に移動

ファイルの最終行まで一気に移動

コマンド
①lessでファイルを開く
②[Shift] + gを実行する
コマンド例
[Shift] + g

出力例
下記のように、ファイルの最終行に一気にジャンプしてくれるので、出力ファイルが多い場合は便利です。

スクリーンショット 2025-11-26 0.05.19.png
[Shift] + gを実行すると、ファイルの最終行に移動する。
スクリーンショット 2025-11-26 0.06.01.png

g ファイルの先頭行まで一気に移動

ファイルの先頭行まで一気に移動

コマンド
①lessでファイルを開く
②gを実行する
コマンド例
g

出力例
下記のように、ファイルの先頭行に一気にジャンプしてくれるので、出力ファイルが多い場合は便利です。

スクリーンショット 2025-11-26 0.06.01.png
gを実行すると、ファイルの最終行に移動する。
スクリーンショット 2025-11-26 0.05.19.png

f 次のページへ移動

開いているファイルの次のページへ移動する。
※スクロールせずとも次のページの出力ができるので便利

コマンド
①lessでファイルを開く
②fを実行する
コマンド例
f

出力例
次のページへ移動してくれるので意外に便利

スクリーンショット 2025-11-26 0.09.54.png
fを実行して次のページに移動する。
スクリーンショット 2025-11-26 0.10.19.png

b 前のページへ移動

開いているファイルの前のページへ移動する。
※スクロールせずとも前のページの出力ができるので便利

コマンド
-- lessでファイルを開く
less laravel.log
-- bを実行する
b
コマンド例
b

出力例
前のページへ移動してくれるので意外に便利

スクリーンショット 2025-11-26 0.10.19.png
bを実行して次のページに移動する。
スクリーンショット 2025-11-26 0.09.54.png

:n 次のファイルへ移動

複数のファイルをlessで開くときに、次のファイルへ移動できる。

コマンド
①lessで複数ファイルを開く
②:nを実行する
コマンド例
— lessで複数ファイルを開く
less data.log server.log

— :nを実行する
:n

出力例
data.logを開いた後、:nを実行するとserver.logに移動する。

スクリーンショット 2025-11-26 0.22.36.png
:nを実行して、次のファイルに移動する。
スクリーンショット 2025-11-26 0.23.17.png

:p 前のファイルへ移動

複数のファイルをlessで開くときに、前のファイルへ移動できる。

コマンド
①lessで複数ファイルを開く
②:nで次のファイルへ移動する
③:pを実行する
コマンド例
— lessで複数ファイルを開く
less data.log server.log

- :nで次のファイルへ移動する
- :n

— :pを実行する
:p

出力例
data.logを開いた後、:nを実行するとserver.logに移動する。
その後、:pを実行するとdata.logに移動する。

スクリーンショット 2025-11-26 0.22.36.png
:nを実行して、次のファイルに移動する。
スクリーンショット 2025-11-26 0.23.17.png
:pを実行して、前のファイルに移動する。
スクリーンショット 2025-11-26 0.22.36.png

q ファイルを閉じる

ファイルを閉じる。

コマンド
①lessでファイルを開く
②qを実行する
コマンド例
— lessでファイルを開く
less data.log

— qを実行する
q

data.logを開いた後、qを実行することでファイルを閉じる。

>>>私が運営するブログはこちら。メインは技術ブログですが、副業やポイ活についても紹介!

[less応用編]複数のオプションを指定して、lessコマンドを実行したい

コマンド例
less -NMS laravel.log

複数のコマンドを組み合わせたもの。
-N:行番号を表示
-M:ファイル名、出力行数/全ての行数、行数の進捗率
-S:長い行の折り返しをせずに1行で表示

出力例

スクリーンショット 2025-11-26 19.57.08.png

[less応用編]複数のオプションを指定し、特定の文字列だけ表示して、lessコマンドを実行したい

コマンド例
less -NMS +'&30' laravel.log

複数のコマンドを組み合わせ、さらに特定の文字列を含む行を表示する。
-N:行番号を表示
-M:ファイル名、出力行数/全ての行数、行数の進捗率
-S:長い行の折り返しをせずに1行で表示
+'&検索文字':文字列を検索して行を出力

出力例

スクリーンショット 2025-11-26 19.59.39.png

[less応用編]複数のファイルを特定の文字列だけ抽出して開く

コマンド例
less +'&error' laravel.log error.log

特定の文字列を含む行を表示し、複数ファイルを出力する。
+'&検索文字':文字列を検索して行を出力

出力例

スクリーンショット 2025-11-26 20.01.51.png
スクリーンショット 2025-11-26 20.02.40.png

[less応用編]lsコマンドとlessを|で組み合わせ

コマンド例
ls | less

lsとlessを組み合わせて出力できる。

出力例

スクリーンショット 2025-11-26 20.05.35.png

>>>私が運営するブログはこちら。メインは技術ブログですが、副業やポイ活についても紹介!

grepとは

ファイルから検索したい条件を探して表示するコマンドです。様々なオプションや検索パターンの組み合わせを覚えておくことで、ログの調査に役立つコマンドとなります。

例えば、grepコマンドで検索するときは下記のように実行します。

コマンド例
-- 基本
grep 検索文字 {ファイル名}

-- 例
grep error error.log

grepコマンド一覧表

コマンド コマンド説明
-i 大文字、小文字を区別せずに検索
-n 行番号を表示
-v 検索文字に該当しない行を出力
-e OR条件で検索
-c 検索に合致した行数をカウント
-C 行数 検索結果の前後の行数を指定し、表示
-A 行数 検索文字で合致した行の後ろの指定行数も表示
-B 行数 検索文字で合致した行の前の指定行数も表示
-l 検索文字で合致したファイル名を表示
-L 検索文字で合致したファイル以外を表示
—color=auto 検索文字を色付きで表示

-i 大文字、小文字を区別せずに検索

大文字や小文字を区別せずに検索する。

コマンド
grep -i ‘検索文字’ {ファイル名}
コマンド例
grep -i 'error' error.log 

出力例
error、ERROR、eRRorなど区別せずに検索できる。

スクリーンショット 2025-11-26 22.07.34.png

-n 行番号を表示

行番号を表示する。

コマンド
grep -n ‘検索文字’ {ファイル名}
コマンド例
grep -n 'error' error.log

出力例
行の先頭に行番号を表示できる。

スクリーンショット 2025-11-26 22.09.06.png

-v 検索文字に該当しない行を出力

検索文字に該当しない行を出力する。

コマンド
grep -v ‘検索文字’ {ファイル名}
コマンド例
grep -v 'ERROR' server.log

出力例
下記の場合、ERRORを含まない行だけ検索できる。

スクリーンショット 2025-11-26 22.10.06.png

-e OR条件で検索

OR条件で検索する。

コマンド
grep -e ‘検索文字’ {ファイル名}
コマンド例
grep -e '500' -e '400' server.log

出力例
500、400を含む行だけ検索できる。

スクリーンショット 2025-11-26 22.12.20.png

-c 検索に合致した行数をカウント

検索に合致した行数をカウントする。

コマンド
grep -c ‘検索文字’ {ファイル名}
コマンド例
grep -c ‘ERROR’ error.log

出力例
ERRORの文字列を含む行数をカウントする。
→14が出力される。

-C 行数 検索結果の前後の行数を指定し、表示

検索に合致した行数をカウントする。

コマンド
grep -C 行数 ‘検索文字’ {ファイル名}
コマンド例
grep -C 5 'tokyo' data.log

出力例
tokyoの文字列を含む行と前後5行も検索して出力する。

スクリーンショット 2025-11-27 12.28.57.png

-A 行数 検索文字で合致した行の後ろの指定行数も表示

検索文字で合致した行の後ろの指定行数も表示

コマンド
grep -A 行数 ‘検索文字’ {ファイル名}
コマンド例
grep -A 5 'tokyo' data.log

出力例
tokyoの文字列を含む行と後ろ5行も検索して出力する。

スクリーンショット 2025-11-27 12.29.35.png

-B 行数 検索文字で合致した行の前の指定行数も表示

検索文字で合致した行の前の指定行数も表示

コマンド
grep -B 行数 ‘検索文字’ {ファイル名}
コマンド例
grep -B 5 'tokyo' data.log

出力例
tokyoの文字列を含む行と前の5行も検索して出力する。
BeforeのBで覚える。

スクリーンショット 2025-11-27 12.30.14.png

-l 検索文字で合致したファイル名を表示

検索文字で合致したファイル名を表示

コマンド
grep -l ‘検索文字’ {対象ファイルやディレクトリ}
※小文字のL
コマンド例
grep -l 'ERROR' *.log

出力例
ERRORの文字列を含むファイルを表示する。

スクリーンショット 2025-11-27 12.31.30.png

-L 検索文字で合致したファイル以外を表示

検索文字で合致したファイル以外を表示

コマンド
grep -L ‘検索文字’ {対象ファイルやディレクトリ}
コマンド例
grep -L 'ERROR' *.log

出力例
ERRORの文字列を含まないファイルを表示する。
→data.logだけ表示※data.logだけERRORの文字がないため。

—color=auto 検索文字を色付きで表示

検索文字を色付きで表示

コマンド
grep —color=auto ‘検索文字’ {ファイル名}
コマンド例
grep —color=auto ‘ERROR’ error.log

出力例
ERRORの文字列に背景色をつけて、視覚的にわかりやすく表示できる。

スクリーンショット 2025-11-27 12.33.18.png

複数のgrepの組み合わせ

コマンド例
grep -i 'error' error.log | grep -v -i 'undefined'

error.logで、大文字・小文字を区別せずにerrorの文字を検索し、undefinedの文字は除外したい。

出力例

スクリーンショット 2025-11-26 21.49.24.png

コマンド例
grep -i 'error' error.log | grep -v -i 'undefined' | less

error.logで、大文字・小文字を区別せずにerrorの文字を検索し、undefinedの文字は除外したい。さらにパイプを使ってlessでファイルの出力数を抑えたい。

出力例
lessで出力しているので、lessコマンド実行後のコマンドが利用可能です。
例えば、&検索文字でさらに検索したり、-Nで行番号を表示させたりできます。

スクリーンショット 2025-11-26 21.52.34.png

おわりに

linuxコマンドでよく使うlessとgrepを徹底的に実例も交えながら解説してきました。実務でもよく使うし、ときたまコマンドを忘れてしまうので、ぜひいいねやブックマークをして繰り返し見れるようにしておくのがいいでしょう。
>>>私が運営するブログはこちら。メインは技術ブログですが、副業やポイ活についても紹介!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?