■掲示板に戻る■ 全部 1- 最新50シェル、オークの質問コーナー
- 1 :はろう :01/09/12 23:02
- ない!!のでつくりました
- 54 :名無しさん@お腹いっぱい。 :01/10/01 22:04
- 質問。
ツリーになっているディレクトリから、ファイル名とファイルサイズが同じ複
数のファイルを発見し、適当な一つ(最新のものかなあ。あんまりこだわらな
い) を残して他を消したいんですが、エレガントなのはどういう方法だと
思いますか? (なにをしているかは見当つくよね。美術画像の整理。)
perlかなんかで書くんだろうけど、オレの技量だと1週間かかっちゃう。
同じことしている人がいたら教えてください。
- 55 :名無しさん@お腹いっぱい。 :01/10/01 22:31
- それ以前にリンクの使い方を覚える、っていうのは?
- 56 :名無しさん@お腹いっぱい。 :01/10/01 22:36
- >>54
find . -ls | awk '{ path=$NF ; gsub(".*/", "", $NF); print $7"-"$NF" "path}' | sort | awk 'BEGIN{ name=""} { if ( name == $1 ) { print $2 } else { name = $1} }' | xargs rm
なんつーか力業くさいが。当然テストもしてないぞ?
あ、もちろん妙なファイル名使う子は使っちゃいけないぞ
- 57 :名無しさん@お腹いっぱい。 :01/10/01 22:37
- >>55
ハード/シンボリックリンクのことですね。
それは知ってる(と思う)
複数の美術館からもらってきた美術画像に同じものが
大量に含まれているんですよ。
- 58 :55 :01/10/01 22:44
- >>57
そっか。ごめんね。鬱死。
- 59 :名無しさん@お腹いっぱい。 :01/10/01 22:53
- >>56
なるほど.... find -lsで"バイト数-名前 ディレクトリつきの名前" という形
にしてソートして抽出するわけですね。変なファイル名もはいっているので
(オレが作ったわけじゃないから)、自分でももうちょっと考えてみます。
しかしよく考えたら数万行ソートしなきゃならんのだな。
- 60 :名無しさん@お腹いっぱい。 :01/10/01 23:06
- >>59
> しかしよく考えたら数万行ソートしなきゃならんのだな。
ソート(そーっと)やって下さい。(オヤヂギャグ)
- 61 :59 :01/10/01 23:12
- 11万行ぐらいあるけど、
今の機械ではこれくらい一瞬ですね。
変な名前のファイルはあらかじめ排除しておくことにしたけど、
大文字小文字の問題があることを発見したのでもうちょっと検査中。
参考になりました。ども。
- 62 :名無しさん@お腹いっぱい。 :01/10/02 05:15
- >>57
キャッツアイ?
- 63 :59 :01/10/07 17:20
- その後、ファイル名とサイズがいっしょってだけでは
まだまだ重複があることに気づき、
find -type f -exec md5 -r {} \;
してリストをつくり、
#! /usr/bin/perl
while(<>) {
($md5, $filename) = /^([0-9a-z]+) (.*)$/;
if ($md5 =~ $prev_md5) {
print "$prev_filename\n$filename\n";
}
$prev_md5 = $md5; $prev_filename = $filename;
}
ってなフィルタを通して
MD5がいっしょのファイルを抽出することにしました。
ばかみたい。
- 64 :名無しさん@お腹いっぱい。 :01/10/07 17:30
- どっかで見た記憶が... と思って freshmeat で "duplicate"
で検索すると、そのものズバリのソフトが結構出て来たぞ。
- 65 :名無しさん@お腹いっぱい。 :01/10/07 17:36
- 多くは書かないたった一行。
- 66 :名無しさん@お腹いっぱい。 :01/10/07 18:20
- >>65
うまい!座布団3枚!
- 67 :59 :01/10/07 19:03
- >>65
やっぱり rm -rf * ってこと?
- 68 :かりんと :01/10/07 21:16
- お祝いに美術画像おくれ。
新着レスの表示
掲示板に戻る 全部 前100 次100 最新50read.cgi ver5.26+ (01/10/21-)