Pythonソリューションの注文

Pythonソリューションの注文

たとえば、inはa:bc:d:a:hi:p:a重複エントリを削除しa、in apple:orange:apple:.:pear:mango:.:apple-は重複エントリを削除します。apple

ベストアンサー1

牛に似た一種の栄養アッ回避策(すべての区切り文字が保持されている):

s="apple:orange:apple:.:pear:mango:.:apple"
awk '{ len=split($0,a,/:|:\.:/,seps); 
       for(i=1;i<=len;i++) printf "%s%s",(!w[a[i]]++? a[i]:""),(i==len? "":seps[i]);
       print "" }' <<<"$s"
  • len=split($0,a,/:|:\.:/,seps)- 文字列を正規表現パターンで区切られたフラグメントに分割し、フラグメントを配列/:|:\.:/に保存し、a区切り文字列をseps配列に保存します。

  • len- 分割によって生成された要素/ブロックの数を含みます。


出力:

apple:orange::.:pear:mango:.:

おすすめ記事