1 votes

Nettoyage en masse des paramètres d'URL à partir d'un fichier txt

J'ai un fichier avec une liste d'URLs comme celle-ci :

www.dell.com/any=abc&anyone=bcd
www.google.co.in 
www.yahoo.com/abc=fgh

Je veux les nettoyer car ils ne montrent que les données jusqu'au signe égal. Par exemple, l'exemple ci-dessus devrait devenir :

www.dell.com/any=
www.dell.com/any=abc&anyone=
www.google.co.in 
www.yahoo.com/abc=

Des suggestions de script pour nettoyer du code comme celui-ci en Python ou bash, etc ?

2voto

janos Points 3017

Si je comprends bien, vous voulez appliquer les transformations suivantes :

  • Si la ligne ne contient pas = Ne faites rien.
  • Si la ligne contient un seul = puis supprimez tout ce qui se trouve après le =
  • Si la ligne contient plusieurs = puis effectuer l'étape précédente de manière répétée jusqu'à ce qu'il n'y en ait plus, en imprimant les résultats intermédiaires à chaque étape.

Voici une façon de le faire :

#!/usr/bin/env bash

while read line; do
    if [[ "$line" == *=* ]]; then
        while [[ "$line" == *=* ]]; do
            line=${line%=*}
            echo $line=
        done
    else
        echo $line
    fi
done

Si vous enregistrez ceci dans un fichier script.sh vous pouvez l'utiliser comme ceci :

./script.sh < input.txt

Cela produira le résultat demandé dans votre question.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X