1

ディレクトリにある場合、file.pcap1、file.pcap2、file.pcap3、.....、file.pcap100のような名前のファイルが100個あるとします。シェルスクリプトで、これらのファイルを1つずつ読み取るために、次のような行を記述しました。

for $file in /root/*pcap*
do
  Something
done

ファイルが読み取られる順序は何ですか?ファイル名の末尾にある番号の昇順で読み取られていますか?これは、すべてのタイプのLinuxマシンで同じケースですか?

4

2 に答える 2

2

ファイル名でソートされています。デフォルトと同じようにls(フラグなし)。

$また、 foreach内のを削除する必要があります。

for file in /root/*pcap*
于 2012-08-08T19:01:12.997 に答える
1

POSIXシェルは、現在のロケールを使用してソートされたパスを返します

パターンが既存のファイル名またはパス名と一致する場合、パターンはそれらのファイル名とパス名に置き換えられ、現在のロケールで有効な照合シーケンスに従ってソートされます。

これは、pcap10がpcap2の前に来ることを意味します。代わりに、自然順を使用する必要があります。たとえば、natsort関数のPythonアナログ(「自然順」アルゴリズムを使用してリストを並べ替える)

于 2012-08-08T19:18:37.377 に答える