1

У меня есть файл со списком 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 ответ1

2

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

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

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

#!/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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .