以下のように2つの文字列があります。
token1, token2, token3, token4, token5, token6, token8, token9, token10
token2, token7, token4, token3, token5, token6, token8, token10, token9
token1
視覚的に、「表示」が両方の文字列に存在しないことがわかります。token7
しかし、Unixツールを使用してさまざまなトークンを取得する簡単な方法はありますか?
長いパスはスクリプトを作成し、{token => count}のハッシュマップを維持し、最終的にcount = 1のキーのみを印刷することです。しかし、もっと短い方法があると思います。
ベストアンサー1
GNUly:
s1='token1, token2, token3, token4, token5, token6, token8, token9, token10'
s2='token2, token7, token4, token3, token5, token6, token8, token10, token9'
comm <(grep -oE '\w+' <<< "$s1" | sort) <(grep -oE '\w+' <<< "$s2" | sort)
以下を提供します。
token1
token10
token2
token3
token4
token5
token6
token7
token8
token9
列は次のとおりです。
- トークンはs1のみです。
- トークンはs2にのみ存在します。
- どちらもトークンです。
そのオプションを渡すことで、熱を抑制できます(例:-3
3番目の列を抑制する)。