J'essaie d'utiliser une liste de modèles pour rechercher dans 4 grands fichiers et supprimer la ligne contenant la regex. p>
J'ai essayé de spécifier le chemin de fichier, mais cela n'a pas fonctionné p>
sed -n '/ {home / dirco / ferme} / p' rimco rimco2 aval aval2 p> blockQuote>
J'ai essayé d'utiliser l'option Sed
-f code> mais il n'a pas fonctionné non plus p>
sed -f home / dirco / ferme rimco rimco2 Aval Aval2 P> blockQuote>
En fin de compte, l'objectif sera de se rendre en place en supprimant cette ligne si le motif est trouvé. P>
3 Réponses :
Essayez ceci:
cmd=$( echo -n "sed -i '" while read -r line; do echo -n "/$line/d;" done < patternfile.txt echo "'" ) "$cmd" rimco rimco2 aval aval2
Merci pour votre réponse, mais en raison de la taille des fichiers, cela prendra des jours de séjour, sed au tirage de chaque ligne. Dans la description, j'ai mentionné 4 grands fichiers (environ 10 Go chacun)
Ceci pourrait fonctionner pour vous (GNU SED):
sed 's#/#\\/#g;s#.*#/&/p#g' patternFile | sed -nf - file1 file2 file3 ...
Malheureusement, cela ne fonctionne pas, je continue à obtenir une commande non trouvé code>
Malheureusement, cela ne fonctionne pas, je continue à obtenir la commande non trouvé code> à la fin de chaque ligne
Voici comment faire ce que vous voulez efficacement et de manière robuste en utilisant GNU AWK pour l'édition de GNU AWK (en supposant que votre liste de regexples dans regexpsfile code> n'est pas massif):
La syntaxe dans votre première commande code> SED code> est presque certainement tort, mais sans explication de ce qu'elle est censée faire, nous ne pouvons pas vous dire comment le corriger.
Je ne pense pas que cela ferait une différence du tout, le problème ici n'est pas le motif, mais l'emplacement du modèle, au lieu d'avoir cette commande. J'essaie de lire tous les modèles d'un fichier. L'utilisation d'une boucle prendra pour toujours la taille des fichiers.