文字の長さに応じて複数の.txtコンテンツを単一のファイルにコピーする

文字の長さに応じて複数の.txtコンテンツを単一のファイルにコピーする

文字数でディレクトリ内の最大のファイルを見つけ、内容をコピーし、そのファイルを削除して別のファイルに貼り付けたいと思います。最終的な目標は、ディレクトリ内の各ファイル(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修飾子を使用すると、oeOROEとソートキーを計算するコードスニペットを使用するか、ORo+とソートキーを計算するシェル関数を使用してO+任意の基準でソートすることもできます。したがって、wc -m各ファイルの文字数を取得し、ソートキーとして使用できます。ソートキーは数値なので、間ではなく、間でソートされるようにnglob修飾子を渡します。10912

cat -- *.txt(noe\''REPLY=$(wc -m <$REPLY)'\') …

関連情報