Vraag Hoe te zoeken naar strings in bestanden in een map?


Is er een hulpprogramma om zoekopdrachten naar een tekenreeks in ASCII-bestanden uit te voeren om zoekacties op de opdrachtregel te voorkomen?

Hoe een zoekactie naar een opdrachtregel te maken, bijvoorbeeld voor de reeks "test" in alle bestanden in de map /var/x/?


89
2017-10-09 08:33


oorsprong


Je meent het echt zonder via de opdrachtregel? Omdat de beste tool daarvoor Grep blijft ... - alci


antwoorden:


U kunt searchmonkey gebruiken. De tool is beschikbaar in de repositories, dus je kunt het eenvoudigweg doen

sudo apt-get install searchmonkey

Aan de andere kant, opdrachtregel zoeken met grep is echt bedoeld voor dat ...

Hier is een screenshot van searchmonkey

enter image description here


71
2017-10-09 08:41



zou het te veel gevraagd zijn om deze aap in de map-navigator te integreren? Linux-kerels snappen het niet ... de desktop bereiken, jullie maken zeker een grapje! Ik gebruik linux sinds madrake ... en ik kan zeggen dat we in het verleden beter waren - neu-rah
crashte vanwege te veel belasting :( - WiredIn
ik heb problemen gehad met searchmonkey. Het is niet betrouwbaar in de zin dat het veel voorvallen laat verdwijnen - tony gil


Ik neem aan dat je eerste vraag gaat over een GUI-alternatief voor de grep opdracht. Ik kan je daar niet mee helpen, ik vind de opdrachtregel altijd zeer effectief.

Wat betreft de opdrachtregel, probeer het

grep "test" /var/x/*

Als u recursief wilt zoeken (dus niet alleen in /var/x/, maar ook in submappen daarvan), doe

grep -R "test" /var/x/

Om grepping van de bestanden te voorkomen waarvan grep denkt dat het binair is, gebruikt u de -I keuze:

grep -I "test" /var/x/

Als grep denkt dat een bestand binair is (gebaseerd op de eerste paar bytes van het bestand), gaat het ervan uit dat het niet overeenkomt in plaats van het hele bestand te doorlopen.


140
2017-10-09 08:46



Zal het werken als de map enkele niet-ascii-bestanden bevat? - Anwar
Nou, grep zal ook proberen de string in een binair bestand te zoeken en het te rapporteren als het overeenkomt met: Binary file file.jpg matches - January
@ Januari Wanneer een binair bestand als tekst wordt gelezen, heeft het vaak extreem lange "regels" (omdat een teken- of tekenreeks die zou worden geïnterpreteerd om het einde van een regel aan te duiden, mogelijk niet voor lange tijd verschijnt). Afhankelijk van de manier waarop een hulpprogramma voor tekstzoeken wordt geïmplementeerd, kan dit prestatieproblemen veroorzaken als elke "regel" volledig in het geheugen wordt gelezen en vervolgens wordt gecontroleerd om te zien of deze overeenkomt met de zoekreeks (wat een redelijke manier is om grep gecodeerd worden, hoewel ik niet weet of het Ubuntu's zijn grep is zo geschreven). - Eliah Kagan
"grep -i" voor niet-hoofdlettergevoelig zoeken - Czarek Tomczak
Er zou een moeten zijn * na de laatste schuine streep in het pad of Grep lijkt geen werk te doen in 14.04 - DavidScherer


Je kunt gebruiken regexxer het is een geweldige GUI search / replace tool voor reguliere expressies.

u kunt downloaden door:

sudo apt-get install regexxer

enter image description here


16
2017-10-09 10:57



het is super snel, maar de problemen die ik heb met deze applicatie zijn: 1. het heeft geen readonly modus, dus ik vervang niet per ongeluk iets 2. het toont de tekst, maar het zal niet naar de specifieke regel die overeenkomt met het patroon. (Ik scrolde rond de 2000 regels code om te vinden waar ik op uit was nadat ik de kleur had veranderd in felrood!) - Mehrad Mahmoudian


Probeer Recoll, de beste GUI die ik ooit heb gebruikt. Om recoll te installeren in alle momenteel ondersteunde versies van Ubuntu open je de terminal en typ je:

sudo apt install recoll

Het heeft enige tijd nodig om de bestanden te indexeren (u kunt een blacklistpad of extensies definiëren of mime).


5
2018-02-05 11:28



Ik kan bevestigen dat Recoll een compleet andere wereld is met betrekking tot gnome-search-tool of search-monkey. Het gebruikt Xapian, dus het is in staat om woorddocumenten (zowel .doc als .docx), pdf-bestanden, e-mailmappen enz. Te inspecteren en te indexeren. - Avio
Uh, het is beschikbaar via deb packaging (sudo apt install recoll) en het doet zijn werk waar zelfs grep faalt, b.v. met .docx-documenten die zijn gecomprimeerd met pkzip-compressie. - Avio


U kunt de grep commando van terminal:

grep -r string *

Deze opdracht zal alle occurrences van "string" vinden in alle bestanden onder de huidige directory (of sub-deletories).

Voor verborgen bestanden kunt u gebruik maken van:

grep -r string ..


3
2018-04-16 09:58



kort en krachtig, 2 het punt antwoord. Bedankt! - amit_kumar


Helaas doet grep het erg slecht om in Word (.doc) -bestanden te zoeken, maar je kunt de catdoc-uitvoer in grep pipen. Ik ben geen programmeur, maar dit kleine script werkt goed voor mij:

#!/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

Alle verbeteringen en suggesties zijn welkom!


2
2018-01-26 14:28



Deze vraag ging over grafische applicaties en platte tekstbestanden. Ik weet niet zeker wat grep en .doc hebben te maken met de vraag. - Andrea Corbellini
Lijkt OK, zie het gedetailleerde antwoord van januari over grep. - aquaherd


Ik heb zojuist een eenvoudige tool vrijgegeven om het werk te doen. Dacht voornamelijk voor software-ontwikkelaar, het heeft de (unieke?) Eigenschap om meerdere bestanden in hetzelfde venster te openen. Het presenteert de resultaten in de browser met behulp van Ace-editor (aanbevolen!) Of html textarea. Het is een op Java gebaseerde tool, dus het werkt zowel in Windows als in Linux.

bekijken!

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


1
2017-11-01 21:35