根据字符长度将多个.txt内容复制到单个文件中

根据字符长度将多个.txt内容复制到单个文件中

我正在寻找按字符数查找目录中最大的文件,复制其内容,删除该文件,然后将其粘贴到其他位置的另一个文件,最终目标是将目录中的每个文件(txt)复制到一个单独的文件中按照这个新顺序完成文件。

我通过对文件的字节大小而不是字符数进行排序来管理此问题。

我唯一的进展是尝试在包含文件的目录中循环它,但这只会导致错误,我觉得这段代码正在吠叫错误的树......

du -b *.txt | sort -n | tail -n1

答案1

桀骜,您可以使用oO 全局限定符根据文件系统元数据(例如大小(字节数))轻松对文件进行排序。

cat -- *.txt(OL) >new-file.tmp &&
rm *.txt &&
mv new-file.tmp new-file.txt

这些 glob 限定符还允许您使用oeorOE和计算排序键的代码片段,或者o+orO+和计算排序键的 shell 函数,按任意条件进行排序。因此,您可以用来wc -m获取每个文件的字符数,并将其用作排序键。由于排序键是数字,因此还要传递nglob 限定符,以便10在 和 之间排序9,而不是在1和之间排序2

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

相关内容