1

たとえば(以下)、すべての行は一意です。green car

blue car
red car
green car
black car
white car
yellow car
green car
brown car

緑の車の1行を削除するだけではありませんが、両方を削除したいのgreen carです。
つまり、テキスト行が2回以上重複している場合は、すべて削除します。

4

3 に答える 3

2

文字列が現在のディレクトリにある名前のファイルにある場合data、次のコマンドラインは*NIXシステムで必要なことを実行します。

$ sort < data | uniq -c | awk '{ if ($1 == 1) print }' | cut -d' ' -f8-

編集:結果を入力ファイルに保存したい場合は、次のことができます。

$ sort < data | uniq -c | awk '{ if ($1 == 1) print }' \
> | cut -d' ' -f8- > data.new && mv data.new data

現在のディレクトリ内のすべてのファイルを処理するには、次の操作を実行できます。

$ for f in *; do sort < $f | uniq -c | awk '{ if ($1 == 1) print }' \
> | cut -d' ' -f8- > $f.new && mv $f.new $f; done
于 2011-02-19T15:16:52.657 に答える
1
blue car
red car
black car
white car
yellow car
brown car

編集:あなたはphpでこれを行うことができます:

$a = array_count_values($mydata);
foreach ($mydata as $key=>$datum) {
  if ($a[$datum] > 1) unset($mydata[$key]);
}
于 2011-02-19T15:07:52.887 に答える
0

小さなGroovyスクリプト

def list =["blue car","red car","green car","green car","green car","brown car"]
def value =0
def finalList =[]
list.each{
    value = list.count(it)
    finalList.add(it)
    if(value >1){
        finalList.remove(it)
    }
}
def file = new File("dulicateRemoved.txt")
file<<finalList
于 2011-02-19T16:04:15.807 に答える