web-dev-qa-db-ja.com

フォルダー内のファイル内の文字列を検索する方法は?

コマンドライン検索を回避するために、ASCIIファイル内の文字列を検索するユーティリティはありますか?

たとえば、ディレクトリ/var/x/内のすべてのファイル内の文字列 "test"をコマンドラインで検索する方法

94
Nuno

Searchmonkeyを使用できます。このツールはリポジトリで利用できるため、簡単に

Sudo apt-get install searchmonkey

一方、grepを使用したコマンドライン検索は、実際にそのためのものです...

これはsearchmonkeyのスクリーンショットです

enter image description here

75
alci

最初の質問は、grepコマンドのGUIの代替案に関するものだと思います。私はあなたを助けることができません、私はいつもコマンドラインが非常に効果的であると思います。

コマンドラインについては、試してください

grep "test" /var/x/*

再帰的に(つまり、/var/x/だけでなく、そのサブディレクトリでも)検索したい場合は、

grep -R "test" /var/x/

Grepがバイナリと見なすファイルのgrepを回避するには、-Iオプションを使用します。

grep -I "test" /var/x/

Grepが(ファイルの最初の数バイトに基づいて)ファイルがバイナリであると判断した場合、ファイル全体を検索する代わりに、一致しないと見なします。

151
January

regexxerを使用できます。これは、正規表現用の優れたGUI検索/置換ツールです。

次の方法でダウンロードできます。

Sudo apt-get install regexxer

enter image description here

18
user61928

ターミナルからgrepコマンドを使用できます。

grep -r string *

このコマンドは、現在のディレクトリ(またはサブディレクトリ)の下にあるすべてのファイルで、「string」のすべての出現を検索します。

隠しファイルの場合、次を使用できます。

grep -r string ..

6
inquisitive

私が今まで使用した中で最高のGUIであるRecollを試してください。現在サポートされているすべてのバージョンのUbuntuにリコールをインストールするには、ターミナルを開いて次のように入力します。

Sudo apt install recoll

最初にファイルのインデックスを作成するのに時間が必要です(ブラックリストパス、拡張子、またはMIMEを定義できます)。

6
user244846

残念ながら、grepはWord(.doc)ファイル内を検索するという非常に悪い仕事をしていますが、catdoc出力をgrepにパイプすることはできます。私はプログラマーではありませんが、この小さなスクリプトはうまく機能します。

#!/bin/bash
export GREP_OPTIONS='--color=auto'
echo -e "\n
Welcome to scandocs. This will search .doc (NOT .docx) files in this directory for a given string. \n
Type in the text string you want to find... \n"
read response
find . -name "*.doc" | 
while read i; do catdoc "$i" | 
grep -iH --label="$i" "$response"; done

すべての改善と提案を歓迎します!

3
Ralph

仕事をするための簡単なツールをリリースしました。主にソフトウェア開発者向けに考えられたもので、同じウィンドウで複数のファイルを開くという(独自の?)特徴があります。 Aceエディター(推奨!)またはhtml textareaを使用して、ブラウザーに結果を表示します。これはJavaベースのツールであるため、Linuxと同様にWindowsでも実行できます。

見てみな!

https://sourceforge.net/projects/queacetu.gastona.p/

2