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


98

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

ディレクトリ内のすべてのファイル内の文字列「test」などのコマンドライン検索を行う方法は/var/x/


15
あなたは本当にコマンドライン使用せずに意味ですか?そのための最良のツールはgrepのままなので
...-alci

CLI では、Silver Searcherがおそらくより良い仕事をします。
パブロA

回答:


78

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

sudo apt-get install searchmonkey

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

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

ここに画像の説明を入力してください


負荷が多すぎるためクラッシュしました:(
WiredIn

1
searchmonkeyで問題が発生しました。それは出現のスリップの多くをすることができます意味で信頼できるものではありません
トニー・ギル

GUIから「searchmonkey」を実行するにはどうすればよいですか?コマンドラインを使用してインストールした後、コマンドラインを使用し
たく

153

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

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

grep "test" /var/x/*

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

grep -R "test" /var/x/

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

grep -I "test" /var/x/

grepが(ファイルの最初の数バイトに基づいて)ファイルがバイナリであると判断した場合、ファイル全体を調べるのではなく、一致しないと見なします。


1
フォルダにASCII以外のファイルが含まれている場合、機能しますか?
アンワール

1
:まあ、grepのも、バイナリファイルに文字列を検索してみてください、それが一致した場合、それを報告しますBinary file file.jpg matches
1月

1
@Januaryバイナリファイルがテキストとして読み取られるとき、多くの場合、非常に長い「行」があります(行の終わりを指定するように解釈される文字または文字シーケンスは、長い間、またはまったく表示されないため)。テキスト検索ユーティリティの実装方法によっては、各「行」がメモリに完全に読み込まれ、検索文字列と一致するかどうかを確認すると、パフォーマンスの問題が発生する可能性があります(これはgrepコーディングするのに合理的な方法ですが、 Ubuntu grepがそのように書かれているかどうかわからない)。
エリアケイガン

1
大文字小文字を区別しない検索用の「grepのの-i」
Czarek Tomczak

3
あるはず*のパスやgrepの最後のスラッシュの後には14.04ですべての作業を行うには表示されません
DavidScherer

20

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

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

sudo apt-get install regexxer

ここに画像の説明を入力してください


超高速ですが、このアプリケーションでの問題は次のとおりです。1.読み取り専用モードがないため、誤って何かを置き換えたり削除したりしません2.テキストを表示しますが、特定の場所に移動しませんパターンが一致した行。(色を明るい赤に変更した後、2000行のコードをスクロールして、後のコードを見つけました!)
Mehrad Mahmoudian

6

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

sudo apt install recoll

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


私はRecollがに関して完全に別の世界であることを確認することができますgnome-search-toolsearch-monkey。それは検査することができますので、Xapianのを使用し、インデックスWord文書(.DOCと.docxの両方)、pdfファイル、メールフォルダなど
アビオ

ええと、それはdebパッケージング(sudo apt install recoll)で利用でき、pkzip圧縮で圧縮された.docxドキュメントなど、grepでさえ失敗します。
Avio

recoll最初にインデックスを作成する必要があることに注意してください。
イロギル

5

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

grep -r string *

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

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

grep -r string ..


2

残念ながら、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

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


1
この質問は、グラフィカルアプリケーションとプレーンテキストファイルに関するものでした。私はこの質問に何が関係grep.docているのか分かりません。
アンドレアコルベッリーニ

OKのようですgrep。1月のについての詳細な回答をご覧ください。
アクアヘルド

2

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

見てみな!

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


1

https://askubuntu.com/a/1141367/47073に従って

を使用できますmate-search-tool。これは、gnome-search-tool削除されたものと同じものです。searchmonkeyで問題が発生しました。一部の結果が表示されず、時間がかかりました。お勧めしません。

インストールするmate-search-tool

sudo apt install mate-utils
mate-search-tool

0

メニューからSublime Text Find in Filesオプションを使用Findして、フォルダー内のファイル内の文字列を検索できます。

Sublime Text 3をインストールするには

sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer

SublimeUbuntuにインストールする他の方法については、この質問に従うこともできます。

Sublime Textのフォルダーから文字列をすべてのファイルで検索するには、この質問に従ってより明確な回答を見つけることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.