ack
Geçerli klasörde sadece metin aramak için söylemenin herhangi bir yolu var mı ? (veya bir max-depth
seviye belirtiniz ?) Ve grep
?
ack
Geçerli klasörde sadece metin aramak için söylemenin herhangi bir yolu var mı ? (veya bir max-depth
seviye belirtiniz ?) Ve grep
?
Yanıtlar:
Kullanım -n
için no-recurse
:
$ ack -n foo
grep
varsayılan olarak özyinelemeli değildir ve -r
bayrak özyinelemeli arama yapmak istiyorsanız kullanmanız gerekir .
Geçerli dizini grep
aşağıdaki gibi arayabilirsiniz :
$ grep -- foo *
-Exec argümanı ile çift bulabilirsiniz. örnek:
find . -maxdepth 1 -exec grep foo {} \;
Bu ölçeklenebilir, yani -maxdepth 2
-maxdepth 1
) ölçeklenebilirdi. Örneğin -maxdepth 2
. Yaptığınız düzenlemeyi nasıl tanımlayacağımı bilmiyorum.
-maxdepth
) taşınabilir / standart sözdizimi olmadığını (sadece GNU ve bazı BSD'ler) açıklığa kavuşturmak isteyebilirsiniz . Ayrıca, burada kullanmanın bir anlamı yoktur \;
( grep
dosya başına bir tane çalıştırın ). Kullanım grep -H foo {} +
(GNU özel) veya grep foo /dev/null {} +
(standart) Dosyanın adı her zaman yazdırılır yapmak. -maxdepth 2
find . -path './*/*' -type d -prune -o -type f -exec ...
.
verecektir . Bir eklemek isteyebilirsiniz için (GNU grep varsayarak) ya da daha iyi eklemek için daha iyi ya da (ya GNU'yu varsayarak muhtemelen istemiyorum gibi) olmayan normal dosyaları okumak için. -mindepth 1
grep
-r
-d skip
grep
! -type d
find
-type f
-xtype f
find
grep
grep -Hin
bu yaklaşımı kullanmaya meyilliyim, böylece dosya adını ve olayın gerçekleştiği çizgiyi görebiliyorum.
-n
hiçbirinin tekrarlanmaması dışında bir derinlik maksimum seçeneği yoktur.