これはStackOverflowの私の最初の投稿ですので、優しくしてください。ループの中でfindの出力を並べ替える
私がしようとしているのは、サイズの検索結果を並べ替えることです(最大から最小)。
file1
file2
file3
file4
file5
file6
私のコードは次のようになります:
for x in $(cat file.txt)
do
find -name $x -printf '%s %p\n'| sort -rn
done
しかし、その代わりに、出力がソートされていない
は私が含まれていfile.txtとを持っています。
出力はファイルのパス(偉大です)とサイズは、ファイルと同じ順序です。
例えば:find
へ
128 /dir1/file1
8 /dir2/file2
0 file3
4 file4
...
and so on
あなたのループは、テキストファイルの各行に取り組んでいます。したがって、 'sort' 1ファイルをテキストファイルの順に毎回渡しています。申し訳ありませんが、それを修正する方法を提案することはできませんが、何が起こっているかを理解するのに役立ちます。私は配列が助けになると思います。http://stackoverflow.com/questions/10981439/reading-filenames-into-an-array – JeffUK