我有一个包含如下 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
这将产生您在问题中询问的输出。