Limpeza em massa de parâmetros de URL do arquivo txt

Limpeza em massa de parâmetros de URL do arquivo txt

Eu tenho um arquivo com uma lista de URLs como esta:

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

Quero limpá-los, pois eles mostram apenas dados com sinal de igual. Por exemplo, o acima deve se tornar:

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

Alguma sugestão de script para limpeza de código como este em python ou bash, etc?

Responder1

Se bem entendi, você deseja aplicar as seguintes transformações:

  • Se a linha não contiver =, não faça nada
  • Se a linha contiver um único =, exclua tudo após o=
  • Se a linha contiver múltiplos =, execute a etapa anterior repetidamente até que não haja nenhum, imprimindo os resultados intermediários em cada etapa

Aqui está uma maneira de fazer isso:

#!/usr/bin/env bash

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

Se você salvar isso em um arquivo script.sh, poderá usá-lo assim:

./script.sh < input.txt

Isso produzirá a saída que você perguntou em sua pergunta.

informação relacionada