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

Jak znaleźć pliki z pewnym tekstem w Terminalu

Chciałbym znaleźć wszystkie pliki, które zawierają pewien ciąg tekstu. Jak zrobić to w Terminalu?

Odpowiedzi (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

używać reflektora

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

nie zapomnij spojrzeć:

man mdfind
12
12
12
2016-03-03 14:07:18 +0000
  1. Przez Ack
brew install ack 
ack "text goes here"
  1. Przez znalezisko
find . |grep "text goes here"
  1. Przez grep
grep -RnslI "text goes here"
4
4
4
2017-06-01 08:00:18 +0000

Możesz wybrać jedną z poniższych opcji w zależności od swojego gustu i potrzeb. Zakładając, że musisz wyszukiwać pliki zawierające tekst - “async”, rekurencyjnie w bieżącym katalogu, możesz to zrobić w jeden z poniższych sposobów:

Użycie grepu

Użycie aka

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

Odpowiedź Ignacia jest świetna i pomogła mi znaleźć pliki zawierające pewien tekst. Jedynym problemem, z którym się zetknąłem, było to, że podczas uruchamiania tego polecenia wszystkie pliki zostaną wymienione, włącznie z jednym, w którym nie pojawił się wzorzec.

No such file or directory To jest to, co widzę obok plików, które nie zawierają wzorca.

Jeśli zamiast tego dodamy do polecenia -s, jak w:grep -lr "text pattern" ./ -s ; grep -lr "text pattern" [PATH DIRECTORY] -s zostanie użyte, pokaże ono tylko te pliki, które zawierają wzorzec.

Podobnie jeśli użyjemy polecenia grep -nr "text pattern" ./ -s ; grep -nr "text pattern" [PATH OF DIRECTORY] -s wypisze ono plik plus numer linii, oraz występowanie wzorca.

Proszę mnie poprawić, jeśli moje rozumienie jest błędne. Odwołanie: Jak mogę sprawić, by grep nie wypisał błędów ‘No such file or directory’?