grep pipe avec sed
C'est ma commande bash
grep -rl "System.out.print" Project1/ |
xargs -I{} grep -H -n "System.out.print" {} |
cut -f-2 -d: |
sed "s/\(.*\):\(.*\)/filename is and line number is /
Ce que je suis en train de faire ici,je suis en train de parcourir les sous-dossiers et vérifier ce que contient les fichiers Système"..print" (à l'aide de grep)
avec la 2e grep essayer d'obtenir les noms de fichiers et les numéros de ligne
à l'aide de sed commande je les afficher à la console.
à partir d'ici, je veux supprimer "du Système..print" avec "XXXXX" comment je peux le tuyau de commande sed pour cela?
svp aider moi
thanxx
pourquoi ne pas simplement utiliser
le truc, c'est que je veux remplacer "le Système de..print" avec "XXXXX",Pouvez-vous me dire meilleure façon de le faire,je suis peu nouveau pour cette
répéter mot à mot ne rend pas votre question plus claire
permettez-moi de le dire de cette façon,il y a beaucoup de fichiers(structure de répertoire) contient des "mot1" je veux remplacer ce mot par "mot2" donc, pourriez-vous me dire comment je peux faire cela?
1. déjà je ne vous dis dans ma réponse. 2. ce que cela a à voir avec le script que vous avez collé?
grep -rn "System.out.print" Project1/
au lieu de ce monstre de la pipe?le truc, c'est que je veux remplacer "le Système de..print" avec "XXXXX",Pouvez-vous me dire meilleure façon de le faire,je suis peu nouveau pour cette
répéter mot à mot ne rend pas votre question plus claire
permettez-moi de le dire de cette façon,il y a beaucoup de fichiers(structure de répertoire) contient des "mot1" je veux remplacer ce mot par "mot2" donc, pourriez-vous me dire comment je peux faire cela?
1. déjà je ne vous dis dans ma réponse. 2. ce que cela a à voir avec le script que vous avez collé?
OriginalL'auteur 123Ex | 2010-12-23
Vous devez vous connecter pour publier un commentaire.
GNU sed a une option pour modifier les fichiers en place:
Btw, votre script peut être écrit comme:
Est-ce de travailler de façon récursive??Je veux accéder à des sous dossiers aussi
En fait, ce n'est pas mon travail à la maison, j'ai le projet avec beaucoup de S. O. P je tiens donc à les supprimer.J'ai essayé de plusieurs façons,mais je ne pouvais pas trouver un moyen de le faire.Je veux savoir comment je peux pipe grep sed,je demande un peu d'aide de votre part les gars
J'irais avec trouver du
-exec
depuis une seule commande est nécessaire (sed) pour être exécuté avec le nom de fichier comme argument.find
est récursive, sauf si vous spécifiez des options supplémentaires (voirman find
).OriginalL'auteur
Je suis juste en appuyant sur hop, en réponse, que j'ai trouvé pour être plus utile que
find -exec
. J'ai eu search_text dispersés partout dans mon ordinateur, dans les journaux, les fichiers de configuration et ainsi de suite, mais je ne voulais pas de recherche (ou surtout changer) quelque chose dans /dev, /sys, /proc, et ainsi de suite. Une note, lire l'homme xargs; il n'aime pas les noms de fichiers avec des espaces.grep | xargs
est sympa aussi.find -print0
| xargx -0` est une bonne façon de gérer les espaces dans les noms de fichiers.OriginalL'auteur John Q