当前位置: 首页 > 面试题库 >

用bash对文件进行数字排序

龙飞文
2023-03-14
问题内容

我需要对.flv文件进行数字排序,并且能够使用以下命令执行此操作:

ls *\.flv | sort --version-sort -f

但是有很多文件(数百个),因此无法正确排序。

ls *\.flv | sort --version-sort -f | tail -n 20
e680.flv
e681.flv
e682.flv
e683.flv
e684.flv
e685.flv
e686.flv
e687.flv
e688.flv
e689.flv
e690.flv
e691.flv
e692.flv
e693.flv
e694.flv
e695.flv
**e696.flv**
s572.flv
s602.flv
s654.flv

但是奇怪的是,如果我在"*.flv"不起作用的情况下破坏了该命令。 我可以只使用ls,但文件夹中还有其他文件类型。

ls | sort --version-sort -f | tail -n 20
e680.flv
e681.flv
e682.flv
e683.flv
e684.flv
e685.flv
e686.flv
e687.flv
e688.flv
e689.flv
e690.flv
e691.flv
e692.flv
e693.flv
e694.flv
e695.flv
e696.flv

到目前为止我尝试过的是:

    ls | sort --version-sort -f | grep "flv"
    ls *.flv | sort --version-sort -f
    ls *\.flv | sort --version-sort -f
    ls *.flv | sort -f

问题答案:

我会尝试以下代码。适用于我的测试场景:

ls -1 *\.flv | sort -n -k1.2

所述ls列表上的每个线FLV文件1中,sort需要在每行开始对第二个字符的第一(且仅一个)字(开始数)。按数字排序



 类似资料:
  • 问题内容: 首先,我发布此内容是因为当我在寻找以下问题的解决方案时,我在stackoverflow上找不到该解决方案。因此,我希望在此处增加一些知识库。 我需要处理目录中的某些文件,并且需要对文件进行数字排序。我在wiki.python.org上找到了一些有关排序的示例(尤其是使用模式),并将它们放在一起: 我对Python还是很陌生,想问一下社区是否可以对此进行任何改进:缩短代码(删除),性能,

  • 问题内容: 在使用与选择不给我预期的结果。 我尝试使用,等(仅对以开头的数字获得正确的顺序)。似乎这里有些我很想念的东西… 问题答案: 您需要-t。标志以指定“。” 作为分隔符,多个键位置说明符可处理越来越长/更深的数字。我仍然不太清楚它是如何工作的,但是它的工作原理是… 要么

  • 问题内容: 我有一个带有单词列表的文本文件,我需要使用Java按字母顺序对其进行排序。单词位于单独的行上。 我将如何处理,将它们读入数组列表,然后进行排序? 问题答案: 这是一个简单的四步过程,其中Stackoverflow问题解决了四个步骤中的三个: 阅读每一行并将其转换为Java String 将每个Java字符串存储在一个数组中(不要认为您需要引用它。) 排序数组 写出数组中的每个Java字

  • 问题内容: 让我们 我想按日期和时间键对输出进行排序。 非常感谢你。 问题答案: 对于GNU排序: 按月份按第二列排序(这样,“三月”排在“四月”之前) 在数字模式下按第三列排序(因此,“ 9”位于“ 10”之前) 按第四列排序。 请参见手册中的更多详细信息。

  • 问题内容: 我正在尝试根据第四列对该文件进行排序。我希望根据第四列的值对文件重新排序。 文件: 我想要这样排序: 我尝试了以下命令: 但是我得到了非法的变量名错误。有人可以帮我吗? 问题答案: 要对第四列进行排序,请仅使用选择器。 您可能还想更自然地对数字排序。例如,屈服而不是(字典顺序)。 如果您收到有关的错误,请确保您的外壳是bash。也许您缺少脚本的顶部?