comment utiliser xargs avec sed dans le motif de recherche
J'ai besoin d'utiliser la sortie d'une commande comme un modèle de recherche dans le sed. Je vais faire un exemple d'utilisation de l'écho, mais supposer que peut-être plus compliqué de commande:
echo "some pattern" | xargs sed -i 's/{}/replacement/g' file.txt
Que la commande ne fonctionne pas parce que "un modèle" a un espace, mais je pense qu'illustrent clairement mon problème.
Comment puis-je faire cette commande fonctionne?
Merci d'avance,
source d'informationauteur Neuquino
Vous devez vous connecter pour publier un commentaire.
Utilisation de la substitution de commande au lieu de cela, de sorte que votre exemple serait:
Les guillemets permettent la substitution de commande à travailler tout en empêchant les espaces de split.
Vous devez dire à xargs-ce que remplacer avec le commutateur-I - il ne semble pas savoir à propos de la {} automatiquement, au moins dans certaines versions.
cela fonctionne sur Linux(testé):
Cela pourrait fonctionner pour vous (GNU sed):
Essentiellement tourner la
some pattern
dans un sed substitution de commande et d'alimentation par l'intermédiaire d'un tuyau à l'autre sed invocation. La dernière sed invocation utilise le-f
interrupteur qui accepte les commandes sed par l'intermédiaire d'un fichier, le fichier étant dans ce cas l'entrée standard-
.Si vous utilisez bash, le
here-string
peuvent être employées:N. B. le sed séparateurs
|
et/
ne devrait pas être une partie desome pattern
sinon la regexp ne sera pas formé correctement.