答え1
このコマンドはファイルが存在することを確認します。
test -f file
[[ -f file ]]
次のメッセージの戻り値に基づいてメッセージをエコーできます。
test -f file || echo file does not exist
for
複数のファイルを確認するにはループを使用できます。
for f in {000..073}.mat ; do
[[ -f $f ]] || echo $f does not exist
done
または1行で:
for f in {000..073}.mat ; do [[ -f $f ]] || echo $f is missing; done
答え2
cd yourfolder
for file in {001..099}; do
[ -e "$file.mat" ] && echo $file.mat || echo "Warning: $file.mat is missing"
done
99を必要なファイル数に変更してください...
答え3
ファイルの上限を知っている場合:
for i in {000..074}
do
if [ -f "$i.mat" ]
then
echo "$i.mat exists"
else
echo "$i.mat doesn't exists"
fi
done
echo
必要に応じてコマンドを変更できます。
答え4
シェルを含むzsh
:
files=(<->.mat)
expected=({000..073}.mat)
missing=(${expected:|files})
printf ' - %s\n' $missing
このような単純な名前を持つファイルの場合は、次のものを使用することもできますcomm
(ここではksh、zsh、またはbashシェルを使用)。
comm -13 <(ls) <(seq -f '%03d.mat' 0 73)