2つの列を持つテキストファイルがあり、最初の列は名前で、2番目の列は時間値です。良い:
cat 34M
dog 34M
fish 12M
ant 34M
同じ値に対して2番目の列を比較する必要があり、1が残りの列と異なる場合は、その項目を表示したいと思います。したがって、この場合は他の魚とは異なるため、タグを付ける必要があります。ファイルは動的でフォルダごとにforループを介して変更されるため、私のスクリプトはforループで比較を実行する必要があります。
for FOLDER in is find ${DIR}/ -maxdepth 1 -type f -name values.txt`; do
<something to flag the 'odd' value>
done
2番目の列を最初にソートしてから、最初の(最も高い)値をメインマークとして比較する必要があると思います。ファイルには、2つ以上の「奇数」値を含めることができます。ファイルには2〜500項目を含めることができます。添え字やawkで何かできますが、どこから始めるべきかわかりません。
助けてくれてありがとう。
ベストアンサー1
値がメモリに収まる場合、「最大500」は次のようになり、必要に応じてawk
たぶん可能かもしれません。1つのステップで(少なくともほとんど)1つのプロセスで。
一度発生するすべての値(複数の値がある場合)を順序に関係なく一覧表示します。
awk '!n[$2++]{a[$2]=$1} END{for(v in n)if(n[v]==1)print a[v],v}'
# can pipe output to a suitable sort if you want a specific order
# or for GNU awk 4, you can get several non-arbitrary orders
# (less than GNU sort) using PROCINFO["sorted_in"] see the manual
一度発生する値をリストします(少なくとも1つある場合)。
awk '!n[$2++]{a[$2]=$1} END{for(v in n)if(n[v]==1){print a[v],v;exit}}'
一度発生し、それ以外の場合は存在しない値をリストします。
awk '!n[$2++]{a[$2]=$1} END{for(v in n)if(n[v]==1){print a[v],v;exit};print "no unique entry"}'