概要
バックエンドの仕事でよく使う、ファイルの検索や一括編集ができる便利なコマンドをシーン別にまとめます。
細かい説明は省いてるので、中級者~の方におすすめです。
シーン別のコマンド集
シーン1 ファイル内の文字列を検索したい
$ cat filename.txt | grep SEARCH_WORD
シーン2 ディレクトリ内のファイルを再帰的に検索したい
適切にコマンドで検索することで、手間なく、漏れなく探し出すことができます。
カレントディレクトリでの操作を想定してます。
# 検索ワードを含む行を一覧
$ find -type f | xargs grep "SEARCH_WORD" | less
# 検索ワードを含むファイル名を一覧 (↑で行数が多すぎる場合)
$ find -type f | xargs grep -l "SEARCH_WORD"
# 【特定の拡張子のみ操作】
# 検索ワードを含む行を一覧 (PHP拡張子のファイルのみ)
$ find -type f | grep "php$" | xargs grep "SEARCH_WORD"
シーン3 検索したワードを置換したい
シーン2で検索したワードを、そのまま他のワードに置換できます。
# 置換実行後、該当行がどうなるかを確認 (ファイルは編集されません)
$ find -type f | xargs sed -e "s/SEARCH_WORD/REPLACE_WORD/g" | grep REPLACE_WORD
# 一括で置換
$ find -type f | xargs sed -i -e "s/SEARCH_WORD/REPLACE_WORD/g"
# 【特定の拡張子のみ操作】
# 一括で置換 (PHP拡張子のファイルのみ)
$ find -type f | grep "php$" | xargs sed -i -e "s/SEARCH_WORD/REPLACE_WORD/g"
シーン4 ストレージの空きが少ない
ストレージの容量不足の特定や、その解消に使えるコマンドです。
# ストレージ全体の空きを確認
$ df -h
# カレントディレクトリのディレクトリ、ファイルサイズを大きい順に表示
$ du -ah ./ | sort -rh | less
シーン5 ファイルの行数を調べたい
$ cat filename.txt | grep -c .
シーン6 ログファイルをリアルタイムで監視したい
$ tail -f /var/log/httpd/error_log
シーン7 gzファイルの中身を、展開せずに確認したい
$ zcat filename.txt.gz | less