如果在目录中,假设有100个文件的名称如file.pcap1,file.pcap2,file.pcap3,.....,file.pcap100。在shell脚本中,为了逐个读取这些文件,我写了一行代码:
for $file in /root/*pcap*
do
Something
done
读取文件的顺序是什么?它们是按照文件名末尾的数字递增顺序读取的吗?对于所有类型的Linux机器,情况是否相同?
答案 0 :(得分:2)
按文件名排序。就像默认的ls
(没有标志)一样。
此外,您需要删除foreach中的$
:
for file in /root/*pcap*
答案 1 :(得分:1)
POSIX shell returns paths sorted using current locale:
如果模式匹配任何现有的文件名或路径名,则 模式应替换为那些文件名和路径名排序 根据当前区域设置中有效的整理顺序
这意味着pcap10出现在pcap2之前。您可能需要自然排序顺序,例如Python analog of natsort function (sort a list using a “natural order” algorithm)。