Массовая очистка параметра URL из txt файла

У меня есть файл со списком URL-адресов, как это:

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

Я хочу очистить их, поскольку они показывают только данные до знака равенства. Например, вышеприведенное должно стать:

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

Любые предложения сценариев для очистки кода, подобного этому, в python или bash и т. Д.?

1 ответ

Решение

Если я правильно понимаю, вы хотите применить следующие преобразования:

  • Если строка не содержит =, ничего не делать
  • Если строка содержит один =затем удалите все после =
  • Если строка содержит несколько =затем выполните предыдущий шаг несколько раз, пока его не будет, печатая промежуточные результаты на каждом шаге

Вот один из способов сделать это:

#!/usr/bin/env bash

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

Если вы сохраните это в файле script.sh, вы можете использовать это так:

./script.sh < input.txt

Это даст результат, который вы задали в своем вопросе.

Другие вопросы по тегам