Soy un novato en Linux. Necesito buscar una cadena "string de prueba" en todos los archivos * .java que se encuentran en / home / user1 / (incluidas las subcarpetas). ¿Cómo puedo hacerlo en Linux a través del comando de shell?
Soy un novato en Linux. Necesito buscar una cadena "string de prueba" en todos los archivos * .java que se encuentran en / home / user1 / (incluidas las subcarpetas). ¿Cómo puedo hacerlo en Linux a través del comando de shell?
Respuestas:
La forma más fácil es usar las características de GNU grep:
grep -r --include '*.java' teststring /home/user1
Si alguna vez usa otra variante de Unix que no tiene GNU grep, aquí hay una forma portátil:
find /home/user1 -name '*.java' -exec grep teststring {} +
grep -r teststring .
usando ack simplemente escribes:cd /home/user01 && ack --java teststring
ack --java teststring /home/user01
Lo encontré. Publicarlo ya que podría ayudar a alguien.
find /home/user01 -name *.java | xargs grep "teststring"
Corrija si hay alguna manera mejor.
-print0
y -0
cuando las tuberías find
en xargs
que funcione correctamente con archivos que pueden tener espacios o saltos de línea en sus nombres:find /home/user01 -name *.java -print0 | xargs -0 grep "teststring"