0

文字列内の繰り返し文字を削除する次のコードがあります。

awk -v FS="" '{
    for(i=1;i<=NF;i++)str=(++a[$i]==1?str $i:str)
}
END {print str}' <<< "AABBCC"

結果は次のとおりです。

ABC

これはまさに私が欲しいものです。しかし問題は、変数を渡すと、繰り返される文字が削除されますが、変数の値が更新されないことです。例えば:

KEY=AABBCC
awk -v FS="" '{
    for(i=1;i<=NF;i++)str=(++a[$i]==1?str $i:str)
}
END {print str}' <<< "$KEY"
echo the new key is: $KEY

結果は次のとおりです。

ABC

新しいキーは次のとおりです: AABBCC

更新されたバージョンの KEY を入手するにはどうすればよいですか?

4

2 に答える 2

4

これを試して:

KEY=AABBCC
KEY=$(awk -v FS="" '{ for(i=1;i<=NF;i++)str=(++a[$i]==1?str $i:str) } END {print str}' <<< "$KEY")
echo $KEY

出力:

ABC
于 2014-08-31T13:54:29.933 に答える