-Rを使ってドットファイルを正しくgrepしますか?

-Rを使ってドットファイルを正しくgrepしますか?

時々、どのパッケージが原因であるか(例:xfce4またはthunar?)、その命名規則が何であるか(.app対.application対.some_old_name対.config / app)、それを見つけるのではなく、不明なドットファイルで犯人を見つける必要がありますする時があります。 ...)、私は速くて汚い方法が欲しい。

me@here:~$ grep -IR .* -e culprit

しかし、この迅速で汚い方法は愚かな方法でもあります。数分後、これも私たちがここにいることを意味することに気づきました.*..時々、より遅くて汚れた変形を使用することもあります。

me@here:~$ grep -IR /home/me -e culprit

これは信じられないほど愚かな仕事であることが判明しました。特にmount自分自身のための巨大な、または遠い目標があるとき、さらにそうです$HOME。残念ながら、迅速でクリーンで正しい方法が見つかりません。 (頭がどんどん疲れています。)

ワイルドカード拡張でこれを達成できますか?つまり、バリアントが.*一致しません..(そして../.....)?

ベストアンサー1

Linuxを使用している場合は試してみてください。

grep -IR --exclude-dir=".." culprit .*

シェルワイルドカードについて質問した後、私が最初に考えたのは.[!.]* ..[!.]*次のとおりです。

grep -IR culprit .[!.]* ..[!.]*

grep.で始まるファイルがない場合は、エラー終了が発生します..。この問題を解決するには、以下を追加して不足しているファイルを無視するように指示でき-sますgrep

grep -IRs culprit .[!.]* ..[!.]*

または、次に始まるファイルがない場合は、bashオプションzsh nullglobを使用して空のファイルに展開します。..[!.]*..

shopt -s nullglob   # for bash
setopt nullglob     # for zsh

grep -IR culprit .[!.]* ..[!.]*

上記のすべての方法が失敗した場合は、常にfind

find . -path "./.*" -exec grep culprit {} +

おすすめ記事