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
à la fin a trouvé ce travail avec moi
Merci les gars
la source
\/
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)A-Z
dans votre regex. (5) Pourquoi as-tu mis le dernier\/
entre parenthèses? Juste pour plus de clarté? (6) Votresed
commande peut être compressée à's|/web/[0-9a-z_]*/||g'
(ou, le cas échéant,…[0-9A-Za-z_]*…
).