1

それぞれ985257行と984997行で構成される元のドライブと複製ドライブからのファイルリストがあります。

行数が一致しないため、一部のファイルが重複していないと確信しています。

どのファイルが存在しないかを確認するために、sedを使用して、ソースリストから重複リストに存在する行を削除することにより、元のファイルリストをフィルタリングしたいと思います。

Excelで一致式を使用することを考えていましたが、行数が原因でプログラムがクラッシュします。sedでこのアプローチを使用することは実行可能なオプションだと思いました。

しかし、これまでのところ、私のアプローチでは成功していません。

 echo "Start"
 # Cat the passed argument which is the duplicate file listing
 for line in $(cat $1)
 do 
   #sed the $line variable over the larger file and remove
   #sed  "${line}/d"  LiveList.csv
   #sed -i "${line}/d"  LiveList.csv
   #sed -i '${line}' 'd'  LiveList.csv
   sed -i "s/'${line}'//" /home/listings/LiveList.csv
 done

作成されてリストファイルの103.4MBに満たされる一時ファイルがありますが、リストファイル自体はまったく変更されていません。

私の他の懸念は、リストがウィンドウで作成されているため、「\」文字が文字列をエスケープして一致せず、したがって変更されない可能性があることです。

Example path:
Path,Length,Extension
Jimmy\tail\images\Jimmy\0001\0014\Text\A0\20\A056TH01-01.html,71982,.html

助けてください。

4

2 に答える 2

3

これはあなたのために働くかもしれません:

sort orginal_list.txt duplicate_list.txt | uniq -u
于 2012-06-06T11:16:00.767 に答える
0

最初に頭に浮かぶrsyncのは、不足しているファイルをできるだけ速くコピーするために使用することです。それは本当に驚異的に機能します。

そうでない場合は、最初に両方のファイルを並べ替えて、どこが異なるかを特定できます。いくつかのトリックを使用pasteして、違いを並べて配置したり、diff出力を並べて使用したりすることもできます。diffファイルを注文すると、追加された行を簡単に識別できると思います。

于 2012-06-06T10:04:22.713 に答える