我正在寻找按字符数查找目录中最大的文件,复制其内容,删除该文件,然后将其粘贴到其他位置的另一个文件,最终目标是将目录中的每个文件(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
和计算排序键的代码片段,或者o+
orO+
和计算排序键的 shell 函数,按任意条件进行排序。因此,您可以用来wc -m
获取每个文件的字符数,并将其用作排序键。由于排序键是数字,因此还要传递n
glob 限定符,以便10
在 和 之间排序9
,而不是在1
和之间排序2
。
cat -- *.txt(noe\''REPLY=$(wc -m <$REPLY)'\') …