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

1

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

Eu quero limpá-los, pois eles mostram apenas dados até o 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?

    
por user7423959 29.01.2017 / 18:11

1 resposta

2

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 depois do =
  • Se a linha contiver vários = , execute a etapa anterior repetidamente até que não haja nenhuma, 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ê fez em sua pergunta.

    
por 29.01.2017 / 20:58