如果在一个目录中,假设有 100 个文件,名称分别为 file.pcap1、file.pcap2、file.pcap3、.....、file.pcap100。在 shell 脚本中,为了逐个读取这些文件,我写了如下一行:
for $file in /root/*pcap*
do
Something
done
读取文件的顺序是什么?它们是否按文件名末尾的数字的递增顺序读取?所有类型的 linux 机器都是一样的情况吗?
如果在一个目录中,假设有 100 个文件,名称分别为 file.pcap1、file.pcap2、file.pcap3、.....、file.pcap100。在 shell 脚本中,为了逐个读取这些文件,我写了如下一行:
for $file in /root/*pcap*
do
Something
done
读取文件的顺序是什么?它们是否按文件名末尾的数字的递增顺序读取?所有类型的 linux 机器都是一样的情况吗?
它按文件名排序。就像默认值一样ls
(没有标志)。
此外,您需要$
在 foreach 中删除:
for file in /root/*pcap*
如果模式匹配任何现有文件名或路径名,则模式应替换为这些文件名和路径名,根据当前语言环境中有效的整理顺序进行排序
这意味着 pcap10 在 pcap2 之前。您可能需要自然排序顺序,例如natsort 函数的 Python 模拟(使用“自然顺序”算法对列表进行排序)。