別の行にある重複バーコードを解析します。

別の行にある重複バーコードを解析します。

次のデータがあり、column1の重複エントリを別々のファイルに解析する必要があります。

例えば、

21288003132541:cr
21288003267289:fr
21288003758683:ph
21288003758683:tag
21288003758683:sel

この行を別のファイルにインポートしたいと思います21288003758683:tag。必要な出力は、すべてのuniq行と重複した後続のファイル用の別々のファイルです。

たとえば、ファイル1

21288003132541:cr
21288003267289:fr
21288003758683:ph

ファイル2

21288003758683:tag

ファイル3

21288003758683:sel

これが意味があることを願っています。

ありがとう

ベストアンサー1

#!/bin/bash
[ $# -ge 1 ] && [ -f "$1" ] || exit
while read oneline;do
    for onecode in $oneline;do
        let count=1
        outfile="output.$count"
        [ -f $outfile ] || touch $outfile
        while grep "${onecode%:*}" $outfile >/dev/null;do
            let count+=1
            outfile="output.$count"
            [ -f $outfile ] || touch $outfile
        done
        echo "$onecode" >>$outfile
    done
done < "$1"

上記のコードを使用すると、見つかった重複項目の数に応じて、名前が出力1、出力2などの複数のファイルが生成されます。出力の行形式が重要なのか、それとも作業が終わったら元のファイルを置き換えたいのかわかりません。

おすすめ記事