サイズが30000〜50000バイトのディレクトリとサブディレクトリのすべてのファイルを表示したいです。
私のファイルを次のように表示したいと思います。
file1.xxx md5sum bytesize
file2.xxx md5sum bytesize
これはこれまでのコードです(コマンドでなければなりません)。
find /mnt/analysis -size +30000c -size -50000c -exec md5sum {} \; -exec ls -l {} \; | awk '{print $1 $5 $9}'
出力:
2fc863d4e42fcced35ce17cdbb9cb623
-rwxrwxrwx33673/mnt/analysis/bla/twelve.png
a952105e64609de5149db2da08e3256c
-rwxrwxrwx41412/mnt/analysis/bla/thirteen.png
希望の出力:
/mnt/analysis/bla/twelve.png 2fc863d4e42fcced35ce17cdbb9cb623 33673
/mnt/analysis/bla/thirteen.png a952105e64609de5149db2da08e3256c 41412
問題は、awkが両方のexecファイルで実行されることです。したがって、権限もそこに適用されます。
ベストアンサー1
まずmd5sumを受け取ることができますか?
find /mnt/analysis -size +30000c -size -50000c -type f | xargs stat -c"echo \$(md5sum %n) %s" | sh
またはマイナス記号がある場合
find /mnt/analysis -size +30000c -size -50000c -type f | xargs stat -c"echo %n \$(md5sum <%n) %s" | sh
tr -d -
(もちろん、ファイル名がなければ追加して削除できます)