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

私の理解が正しければ、次の変換を適用したいことになります。

  • 行に が含まれていない場合は=何もしない
  • 行に が1つだけ含まれている場合は=、それ以降のすべてを削除します。=
  • 行に複数の が含まれている場合は=、 がなくなるまで前のステップを繰り返し実行し、各ステップで中間結果を出力します。

その方法の 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

これにより、質問で尋ねた出力が生成されます。

関連情報