bashで.pcapファイルとのみ一致するファイルディレクトリでネストされたforループを実行するのは正当ですか?
ROOTFILEPATH = '/a/path'
FILEEXT = '.pcap'
for file in $ROOTFILEPATH
for $FILEEXT in file; do
#do something
done
ありがとうございます。
答え1
ループをネストするのではなく、最初のループがファイル*.pcap
にのみ機能するように指示できます。
#! /bin/bash -
for CUR_FILE in "/PATH/TO/DIR/"*.pcap; do
echo "$CUR_FILE"
done
答え2
ディレクトリを繰り返すには、指定された拡張子のみを選択し、ディレクトリと拡張子は変数です。
rootfilepath='/a/path'
fileext='.pcap'
for file in "$rootfilepath"/*"$fileext"
do
: something with "$file"
done
元のコンテンツを一部変更しました。
- 小文字の変数名。ただ慣例です。名前がすべて大文字である複数の組み込み変数を使用するのを防ぐのに役立ちます。
- 変数の割り当ての周りのスペースを削除しました。それ以外の場合、変数名自体は2つの引数、つまり等号と残りの変数値を使用して実行されるコマンドとして扱われます。
do
ループに欠けている値を追加しました。*
そのパスにあるその拡張子を持つすべてのファイルをインポートするには、ディレクトリとファイル拡張子の間にシェルワイルドカード()を使用します。