Jestem początkującym Linuksem. Muszę wyszukać ciąg „teststring” we wszystkich plikach * .java znajdujących się w katalogu / home / user1 / (łącznie z podfolderami). Jak mogę to zrobić w systemie Linux za pomocą polecenia powłoki.
20
Odpowiedzi:
Najprostszym sposobem jest użycie funkcji GNU grep:
Jeśli kiedykolwiek korzystasz z innego wariantu unixa, który nie ma GNU grep, oto przenośny sposób:
źródło
grep -r teststring .
używając ack wystarczy wpisać:
cd /home/user01 && ack --java teststring
źródło
ack --java teststring /home/user01
Dla tego ack aka ack-grep to moja aplikacja zabójcy;)
Możesz
ack some_string /in/path_y
znaleźć some_string w path_y Lub prościejack some_other_string
jest znaleźć some_other_sting w bieżącym katalogu.źródło
Znaleziono to. Publikowanie, ponieważ może komuś pomóc.
Popraw, jeśli istnieje lepszy sposób.
źródło
-print0
i-0
podczas przesyłaniafind
do,xargs
aby poprawnie pracować z plikami, które mogą mieć spacje lub znaki nowej linii w nazwach:find /home/user01 -name *.java -print0 | xargs -0 grep "teststring"
źródło