文字数でディレクトリ内の最大のファイルを見つけ、内容をコピーし、そのファイルを削除して別のファイルに貼り付けたいと思います。最終的な目標は、ディレクトリ内の各ファイル(txt)をこの新しい順序でファイルを分割することです。
文字数ではなくバイトサイズでファイルを並べ替えて管理しました。
私が達成した唯一の進歩は、ファイルを含むディレクトリを介してループを試みるだけですが、これはエラーが発生し、このコードが誤ったツリーを吠えるように感じます。
du -b *.txt | sort -n | tail -n1
答え1
そして扱いにくい、使用することができますo
またはO
グローバル予選バイトサイズなどのファイルシステムメタデータに基づいてファイルを簡単にソートできます。
cat -- *.txt(OL) >new-file.tmp &&
rm *.txt &&
mv new-file.tmp new-file.txt
これらのglob修飾子を使用すると、oe
OROE
とソートキーを計算するコードスニペットを使用するか、ORo+
とソートキーを計算するシェル関数を使用してO+
任意の基準でソートすることもできます。したがって、wc -m
各ファイルの文字数を取得し、ソートキーとして使用できます。ソートキーは数値なので、間ではなく、間でソートされるようにn
glob修飾子を渡します。10
9
1
2
cat -- *.txt(noe\''REPLY=$(wc -m <$REPLY)'\') …