从 txt 文件中批量清除 URL 参数

从 txt 文件中批量清除 URL 参数

我有一个包含如下 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

这将产生您在问题中询问的输出。

相关内容