Rechercher et supprimer une ligne dans un fichier .htaccess


0

J'essaie de comprendre comment une commande pourrait effectuer une recherche et supprimer une ligne du fichier .htaccess. la ligne suivante est la ligne que je veux rechercher et supprimer

RedirectMatch \.(dynamiccontent|pl|plx|perl|cgi|php|php4|php4|php6|php3|shtml)$ http://server.linux.com/cgi-sys/movingpage.cgi

Notez que cette ligne a des caractères spéciaux

C'est la commande pour trouver le code

find /home*/*/public_html/ -mindepth 1 -iname "\.htaccess" -type f -exec grep -Hi "RedirectMatch*" '{}' \;

Mais c’est seulement trouver pas trouver et supprimer la ligne dans le fichier .htaccess

Comment puis-je modifier la commande pour trouver et supprimer la ligne que je mentionne?

Réponses:


0

Cela devrait le faire:

while IFS= read -r -d '' file; do
grep -iv "RedirectMatch*" $file>tmp
mv tmp $file
done < <(find /home*/*/public_html/ -mindepth 1 -iname "\.htaccess" -type f -print0)
rm tmp

La sortie de la commande find est utilisée par substitution de processus dans le while boucle, comme $file. ensuite grep -vi $file renvoie chaque ligne $file cette ne pas match (cas ignorant). Il écrit cela dans un fichier temporaire appelé tmp , puis le copie sur l'original .htaccess des dossiers. Pour plus de sécurité, vous pouvez ajouter cette ligne supplémentaire avant le mv commander:

mv "$file" "$file".old

Cela renommera les fichiers htaccess d'origine en .htaccess.old, au cas où quelque chose serait bloqué.


J'ai eu les erreurs suivantes, ligne 4: erreur de syntaxe près d'un jeton inattendu <' line 4: fait & lt; & lt; (find / home * / * / public_html / -mindepth 1 - iname "\ .htaccess" - type f print0); '
user209827

Bon sang, il y avait une faute de frappe dans la commande de recherche. Devrait être -print0 vois comment tu vas maintenant.
stib

j'ai deux erreurs chaque erreur dans une ligne
user209827

ligne 4: erreur de syntaxe près du jeton inattendu `& lt; '
user209827

ligne 4: `done & lt; & lt; (find / home * / * / public_html / -mindepth 1 - iname "\ .htaccess" -type f -print0) '
user209827
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.