2010-07-13 09:42:08 +0000 2010-07-13 09:42:08 +0000
179
179

Hoe vind je bestanden met een bepaalde tekst in de Terminal

? Ik wil graag alle bestanden vinden die een bepaalde tekenreeks bevatten. Hoe zou u dat doen in de Terminal?

Antwoorden (5)

299
299
299
2010-07-13 09:47:11 +0000
grep -r 'text goes here' path_goes_here
31
31
31
2010-08-12 22:38:59 +0000

gebruik spotlight

mdfind "text goes here"
mdfind -onlyin /home/user/Desktop -live "live update"

vergeet niet te kijken naar:

man mdfind
12
12
12
2016-03-03 14:07:18 +0000
  1. Via Ack
brew install ack 
ack "text goes here"
  1. 2. Via find
find . |grep "text goes here"
  1. Via Ack grep -RnslI "text goes here"
  2. Via Ack

  3. Via grep

&001

4
4
4
2017-06-01 08:00:18 +0000

U kunt een van de onderstaande opties kiezen, afhankelijk van uw smaak en behoeften. In de veronderstelling dat u moet zoeken naar bestanden die tekst bevatten - “async”, recursief in de huidige directory, kunt u dit doen op een van de manieren zoals hieronder:

Gebruik van grep

Gebruik van ack

2
2
2
2017-06-01 15:27:29 +0000

Ignacio’s antwoord is geweldig en heeft me geholpen om de bestanden met bepaalde tekst te vinden. Het enige probleem waar ik mee te maken had was dat bij het uitvoeren van dit commando alle bestanden werden opgesomd, inclusief één waar het patroon niet te zien was.

No such file or directory Dit is wat ik zie naast bestanden die het patroon niet bevatten.

Als je in plaats daarvan -s aan het commando toevoegt, zoals in:grep -lr "text pattern" ./ -s ; grep -lr "text pattern" [PATH DIRECTORY] -s wordt gebruikt, zal het alleen laten zien welke bestanden het patroon bevatten.

Op dezelfde manier als grep -nr "text pattern" ./ -s ; grep -nr "text pattern" [PATH OF DIRECTORY] -s wordt gebruikt, wordt het bestand afgedrukt plus het regelnummer, en het voorkomen van het patroon.

Corrigeer me als ik het niet goed begrijp. Referentie: Hoe kan het dat grep geen ‘No such file or directory’ fouten afdrukt?