ディレクトリとサブディレクトリのすべてのファイルの表示形式を指定します。

ディレクトリとサブディレクトリのすべてのファイルの表示形式を指定します。

サイズが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 -(もちろん、ファイル名がなければ追加して削除できます)

おすすめ記事