ファイルとかディレクトリとかの情報で探したい
# ファイル名かディレクトリ名で検索したい
$ find {ディレクトリパス} -name '{検索したい文字列}'
# ファイル名で検索したい
$ find {ディレクトリパス} -type f -name '{検索したい文字列}'
# ファイル名で検索したい(大文字小文字無視)
$ find {ディレクトリパス} -type f -iname '{検索したい文字列}'
# ディレクトリ名で検索したい
$ find {ディレクトリパス} -type d -name '{検索したい文字列}'
# ファイルの拡張子を指定して再帰的に検索したい
$ find ./ -name *.xhtml
$ grep '{検索したい文字列}' {ディレクトリパス} -r --include=*.php
# 特定の拡張子を除外して再帰的に検索したい
$ grep '{検索したい文字列}' {ディレクトリパス} -r --exclude=*.css
$ find {ディレクトリパス} -not -name *.css -a -name *{検索したい文字列}*
# ファイルのタイムスタンプで検索したい(例:今~10min前まで)
$ find -mmin -10
- Man page of FIND
- Linuxコマンド集 - 【 find 】 ファイルやディレクトリを検索する:ITpro
- UNIX/Linuxの部屋 コマンド:find
- ◇ディレクトリとファイルの検索◇初心者のためのLinuxサーバー構築講座
- find コマンド | コマンドの使い方(Linux) | hydroculのメモ
- 逆引きUNIXコマンド/findコマンドの-printオプションについて - Linuxと過ごす
- 特定の拡張子(*.php)のファイルだけをGrepして検索したい。 - それマグで!
- Grep で特定の拡張子のファイルのみ対象・除外する - Corredor
- 逆引きUNIXコマンド/findに日時を指定し該当するファイルを検索する - Linuxと過ごす
ファイルの中身にある文字列で探したい
$ find {ディレクトリパス} -type f | xargs grep '{検索したい文字列}'
# ファイル名だけ表示
$ grep -rl '{検索したい文字列}' {ディレクトリパス}
# 行表示版
$ grep -rn '{検索したい文字列}' {ディレクトリパス}
# 前後指定行数表示版(前後4行表示)
$ grep -4 -rn '{検索したい文字列}' {ディレクトリパス}
# 大文字小文字無視(-i)してファイルパスだけ表示(-l)で検索したい
$ grep -irl '{検索したい文字列}' {ディレクトリパス}
# 指定した拡張子(--include)のファイルだけでバイナリファイルを除外(-I)してファイルパスだけ表示(-l)で検索したい
$ grep -Irl '{検索したい文字列}' --include=*.xhtml
# 任意の文字列を含まない(grep (GNU grep) 3.1)
$ grep -v {任意の文字列}
# 複数条件(AND) : (「;」で始まらない)and(「{{」を含む)
$ grep ^[^\;] | grep [\{\{]
# 複数条件(OR) : (「{{」を含む)or(「[」で始まる)
$ grep -e [\{\{] -e ^[\[]
# 複数条件(ANDとOR) : (「;」で始まらない)and((「{{」を含む)or(「[」で始まる))
$ grep ^[^\;] | grep -e [\{\{] -e ^[\[]
# 正規表現を使って探したい
grep -rE '{検索したい文字列を表す正規表現}' {ディレクトリパス}
- 複数のファイル内の文字列をまとめて置換するLinuxコマンド - Qiita
- Grep結果に行番号を表示する - それマグで!
- grepで該当する行の前後も一緒に表示するには
- 文字コードの違いにより grep 出来ないファイルを grep する - Qiita
- FINDで特定文字列を含むファイルの一括検索 - Qiita
- grepでAND検索とOR検索 - Qiita
- 正規表現がわからないから見たいリンク集 - Qiita
探しにくい文字を探したい
# ドットを含む文字を検索したい(囲みはダブルクォーテーションでもOK)
$ grep -r '\.padding' --include=*.css
# 「-1」を探したい
$ grep -Irn '\-1' --include=*.java
〇〇を除外して探したい
# 任意の文字列を含まないで探したい
$ grep -rv {任意の文字列} {ディレクトリパス}
# 「任意の文字列を含まない」かつ「任意の文字列を含む」で探したい
$ ls -la | grep -v {含まない文字列} | grep {含む文字列}
# バイナリファイルを除外して探したい
$ grep -Ir '{検索したい文字列}' {ディレクトリパス}
# 特定のディレクトリを除外して探したい
$ grep -ir {検索したい文字列} --exclude-dir={ディレクトリ名}
- テキストファイルをgrepしたらBinary file (standard input) matchesとなった時の対応方法
- 「バイナリファイルに一致しました」を除外する方法 - Linuxと過ごす
- 指定した文字列を含まない行を抽出するためのコマンド | ハックノート
- Input/Output errors - Qiita
bashでさっき使ったコマンドを探したい
(Cntrol + R)
$ (reverse-i-search)`cd': cd {ディレクトリ}
xxで始まる文字を探したい
# ハイフン(-)で始まる文字
## 失敗例
$ grep -rn "-- " {ディレクトリパス}
grep: unknown option --
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
## 成功例
$ grep -rn "\-- " {ディレクトリパス}
#「 AS 」で始まる「大文字英数字」を探す
grep -r -P '(?<=\sAS\s)[A-Z0-9_]+' {ディレクトリパス}