supprimer le motif avec des nombres aléatoires (chiffres) des fichiers php


0

J'essaie de supprimer ou de remplacer les chiffres ((nombres aléatoires)) dans un grand nombre de fichiers php avec find & amp; xargs et grep avec sed etc. les chiffres ressemblent à ça dans le fichier php

 /web/20150618155933/http//www.example.com/
 src='/web/30110218335932im_/img/example.png'
( /web/20150703082231js_/https://me-ssl : /web/20150703082231/http://me-cdn')

les bonnes choses les chiffres sont statiques sur 14 chiffres seulement .. mais finissez avec soit js_ im_ ou seulement des nombres ,, donc j'étais utiliser la commande ci-dessous

find . -type f -name '*.php*' -print0 | xargs egrep -hEo '/web/\<[[:digit:]]{14}\>/' | xargs sed -i 0 ?????

je suis coincé dans deux choses 1. intégré à la commande sed 2. ajouter dans la recherche le motif se termine avec js_ im_ ou uniquement des chiffres

Merci

Réponses:


0

Est-ce que quelque chose comme ce travail pour vous:

find . -type f -name \*.php -exec sed -i 's:/web/[0-9]\+:/web/:g' {} \;

?


nop, j'ai couru ça ne fait rien
— user3716621

Cela fonctionne comme prévu. S'il vous plaît ne pas downvote sans avant de tenter de dépannage. Les détails de votre système peuvent vous aider.
— SΛLVΘ

0

à la fin a trouvé ce travail avec moi

find . -type f -name '*.php*' -print0 | xargs -0 sed -i 's/\/web\/\([0-9,a-z,_]*\)[\/]//g'

Merci les gars


(1) oui \/ fonctionne, mais lorsque vous effectuez une recherche et un remplacement qui inclut des barres obliques, il est souvent plus clair d’utiliser un autre caractère comme délimiteur. J'aime les barres verticales ( | ) d'autres préfèrent !, @, #ou tout autre élément qui n’apparaît pas dans la commande et qui n’est pas un caractère spécial. (2) […] compte comme une seule expression régulière; donc aussi […]*. Donc, vous n'avez pas besoin de l'enfermer dans \(…\) (sauf si vous l'insérez dans la chaîne de remplacement). (3) Ne pas inclure , dans un […] expression sauf si vous voulez qu'elle corresponde à une virgule. … (Suite)
— Scott

(Suite)… (4) Je sais que vos exemples ne montrent aucune majuscule, mais avez-vous des majuscules dans vos données? Si vous le faites, vous devez inclure A-Z dans votre regex. (5) Pourquoi as-tu mis le dernier \/ entre parenthèses? Juste pour plus de clarté? (6) Votre sed commande peut être compressée à 's|/web/[0-9a-z_]*/||g' (ou, le cas échéant, …[0-9A-Za-z_]*… ).
— Scott
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.