LinuxLinux [リナックス / ライナックス]オープンソースのOSカーネル環境でのシステム運用や開発において、ログの解析や設定ファイルの一括置換、ファイル検索といった「テキスト処理・検索」は非常に頻繁に行われる作業です。
本ページでは、ファイルや文字列の検索(find、grep)、テキストの置換・抽出(sed、awk、xargs)、およびファイル内容の表示・整形(head、tail、uniq)に関する主要なコマンドの使い方を体系的にまとめました。
各コマンドの基本から、組み合わせて使う実践的なテクニックまでを網羅しています。
Linuxでファイルや文字列を検索するコマンド
findコマンド:Linuxで再帰的にファイルを検索する
ファイルやディレクトリを名前や種類などの条件で検索するためのコマンドです。デフォルトで再帰的に検索を行います。
- ポイント:
-nameや-inameで大文字小文字の区別を指定可能-execを使って検索結果に対する一括処理も可能
# カレントディレクトリ配下から「.txt」ファイルを検索find . -name "*.txt"
【Linux】再帰的にファイル名を検索する(findコマンド)
Linuxでファイルやディレクトリを検索する際、便利なのがfindコマンドです。本記事では、「再帰的にファイル名を検索する」というテーマに焦点を当てて、findコマンドの使い方やオプションを指定した応用的な使い方を解説します。
grepコマンド:Linuxで文字列を再帰的に検索する
ファイルの中身から特定の文字列を検索するコマンドです。ディレクトリ配下を再帰的に検索する際に非常に便利です。
- ポイント:
-rオプションでディレクトリ内のファイルを再帰検索-lオプションで該当するファイル名の一覧のみを取得
# カレントディレクトリ配下から「keyword」を再帰検索し、ファイル名一覧を取得grep -rl "keyword" ./
【Linux】grepコマンドで再帰的な検索をする方法
Linuxでファイル内容の再帰的な検索をする場合は、grepコマンドのrオプションを利用します。またlオプションと組み合わせることで、該当ファイルの一覧も取得することができます。
Linuxでテキストの置換・抽出・一括処理を行うコマンド
sedコマンド:テキストの文字列置換や行削除を行う
ストリームエディタとして、ファイル内の文字列を置換したり特定の行を削除したりできるコマンドです。
- ポイント:
s/置換前/置換後/gで文字列を置換-iオプションで直接ファイルを上書き保存可能
# test.txt内の「it-life」を「IT-LIFE」へ置換し上書き保存sed -i 's/it-life/IT-LIFE/g' test.txt
【Linux】sedコマンドでファイルの文字列を置換・行削除する
Linuxでファイルの文字列を置換・行削除する方法を解説します。sedコマンドで置換や行削除を行い、-iオプションを指定することで、置換後文字列や削除した状態で保存することができます。
findとsedコマンド:複数ファイルの文字列を一括置換する
findで対象ファイルを絞り込み、xargsを経由してsedで一括置換する、実務でよく使われる強力な組み合わせです。
- ポイント:
grep -rlで置換前に対象を確認するのがおすすめ- 特定のディレクトリ(node_modulesなど)を除外することも可能
# カレントディレクトリ配下のファイルを一括置換find ./ -type f -print | xargs sed -i "s/keyword/after_keyword/g"
【Linux】sedで文字列を一括置換する方法
Linuxのsedとfindを使い、複数ファイルの文字列を一括置換する方法を詳しく解説します。grepでの事前確認や、特定のディレクトリ・拡張子を除外する方法も紹介するので、大量のファイルを効率的に編集したい方におすすめです。
awkコマンド:区切り文字を指定して文字列を抽出する
行ベースのテキストデータから、スペースやカンマなどの区切り文字を基準にして特定の列を抽出するコマンドです。
- ポイント:
$1や$2で行内の特定フィールドを抽出-Fオプションで区切り文字の変更が可能(CSVCSV [シーエスブイ]Comma-Separated Values。カンマ区切りのデータ形式の処理などに便利)
# スペース区切りのアクセスログから4、5項目目を抽出awk '{ print $4,$5 }' /var/log/nginx/access.log | tail -n 3
awkコマンドのprintで区切り文字を指定し、文字列を抽出する
awkコマンドで文字列を抽出する場合、printを指定します。$0で行全体を、$nで区切り文字で区切られた部分を取得することができます。
xargsコマンド:複数ファイルを対象に一括処理を実行する
他のコマンドの出力を引数として受け取り、指定したコマンドを実行するためのコマンドです。
- ポイント:
findやgrepと組み合わせてファイル群を一括処理する際に活躍-print0と-0を組み合わせることでスペースを含むファイル名も安全に処理
# .tmpファイルを検索し、安全に一括削除find . -name "*.tmp" -print0 | xargs -0 rm
【Linux】xargsコマンドの使い方|findやgrepと組み合わせた実用例
Linuxのxargsコマンドの基本的な使い方から、findやgrepと組み合わせた実用的な活用例まで解説します。ファイルの一括処理や削除など、現場でよく使うパターンを具体的なコマンド例と一緒に紹介します。
Linuxでファイル内容の表示・監視・整形を行うコマンド
head・tailコマンド:ファイルの特定範囲の行を取得する
head(先頭)とtail(末尾)を組み合わせることで、ファイルの指定した範囲の行のみを抽出することができます。
- ポイント:
tail -n +開始行で開始位置を指定- パイプでつないだ
head -n 行数で取得する範囲を決定
# test1.txtの7行目から4行分(7〜10行目)を取得tail -n +7 test1.txt | head -n 4
【Linux】head、tailコマンドを組み合わせて開始・終了行を指定する
Linuxのtailとheadコマンドを組み合わせて、ファイルの特定範囲の行を取得する方法を詳しく解説します。基本的な使い方から応用例まで、具体的なコマンドやスクリプトの活用方法を紹介します。必要なデータを効率的に抽出し、業務の効率化やログ解析などに役立てることができます。
tailコマンド:ログファイルをリアルタイムで監視する
ファイルの末尾を表示するだけでなく、更新され続けるログファイルをリアルタイムに監視する際にも使われます。
- ポイント:
-fオプションで追記されたデータをリアルタイム表示-Fオプションを使えばログローテーション後も自動で追従
# アクセスログをリアルタイム監視tail -F /var/log/nginx/access.log
tailでログを行数表示|リアルタイム監視する【Linux】
Linuxのtailコマンドを利用して、ファイルの末尾を行数指定で表示する方法やリアルタイムでログを監視する方法を解説します。tailコマンドの基本的な使い方から、-fや-Fオプションの違いや、複数ファイルの同時監視方法。grepとの組み合わせによるフィルタリングまで、実践的なノウハウを紹介します。
sort・uniqコマンド:テキストの重複行を削除・集計する
隣接する重複行を削除するuniqと、並べ替えを行うsortを組み合わせることで、ファイル全体の重複を削除したり、出現回数を集計したりできます。
- ポイント:
uniqは事前にsortでの並べ替えが必須-cオプションで出現回数のカウントが可能(アクセスログ解析などに活用)
# 重複行を削除し、一意な行のみを出力sort sample.txt | uniq > result.txt
【Linux】重複行を削除する方法!sortとuniqの基本と応用
本記事では、Linuxでテキストファイルの重複行を削除する代表的な方法を解説します。sortとuniqコマンドを組み合わせた基本手順から、出現回数の集計機能まで詳しく紹介。ログ解析やCSVデータのクレンジング作業を効率化したいエンジニア必見のテクニックをまとめました。
テキスト処理・検索コマンドまとめ
本ページでは、Linux環境において非常に利用頻度の高い「テキスト処理・検索」関連のコマンドについてまとめました。
各コマンドを単独で使うだけでなく、findやxargsと組み合わせて一括処理したり、パイプ(|)で複数のコマンドを連携させたりすることで、強力なデータ処理やファイル操作が可能になります。
各記事の詳細ページも参考に、日々のサーバー運用や開発業務の効率化にぜひお役立てください。
以上で本記事の解説を終わります。
よいITライフを!
人気記事
- 1
- 2
- 3
- 4
- 5
Rocky Linux対応。実際にWebサーバーを公開するまでのプロセスを体験できる、最も確実で実践的なガイドブックです。