按文本字符长度对目录中的文件进行排序并复制到其他目录

Sort files in a directory by their text character length and copy to other directory

我正在尝试在目录中按字符长度查找最小文件,一旦找到,我想重命名它并将其复制到另一个目录。

例如,我在一个目录 ~/Files 中有两个文件,它们是 cars.txtrabbits.txt

cars.txt中的文本:

I like red cars that are big.

rabbits.txt中的文本:

I like rabbits.

到目前为止,我知道如何使用命令 wc -m 'filename' 获取单个文件的字符长度,但我不知道如何在所有文件中执行此操作并按顺序对它们进行排序。我知道 rabbits.txt 的字符长度更小,但如何比较它们?

您可以按大小对文件进行排序,然后select第一个文件的名称:

 file=$(wc -m ~/Files/* 2>/dev/null | sort -n | head -n 1 | awk '{print }')
 echo $file