Ich habe eine Datei mit einer Liste von URLs wie dieser:
www.dell.com/any=abc&anyone=bcd
www.google.co.in
www.yahoo.com/abc=fgh
Ich möchte sie bereinigen, da sie nur Daten bis zum Gleichheitszeichen anzeigen. Das obige sollte beispielsweise lauten:
www.dell.com/any=
www.dell.com/any=abc&anyone=
www.google.co.in
www.yahoo.com/abc=
Gibt es irgendwelche Skriptvorschläge zum Bereinigen von Code wie diesem in Python oder Bash usw.?
Antwort1
Wenn ich das richtig verstehe, möchten Sie folgende Transformationen anwenden:
- Wenn die Zeile nicht enthält
=
, tun Sie nichts - Wenn die Zeile ein einzelnes enthält
=
, dann lösche alles nach dem=
- Wenn die Zeile mehrere enthält
=
, führen Sie den vorherigen Schritt wiederholt aus, bis keins mehr vorhanden ist. Drucken Sie bei jedem Schritt die Zwischenergebnisse aus.
So können Sie das tun:
#!/usr/bin/env bash
while read line; do
if [[ "$line" == *=* ]]; then
while [[ "$line" == *=* ]]; do
line=${line%=*}
echo $line=
done
else
echo $line
fi
done
Wenn Sie dies in einer Datei speichern script.sh
, können Sie es folgendermaßen verwenden:
./script.sh < input.txt
Dadurch wird die Ausgabe erzeugt, nach der Sie in Ihrer Frage gefragt haben.