パターンに欠落しているファイル名のリスト

パターンに欠落しているファイル名のリスト
  1. 数字で始まり、ハイフンでリンクされたファイルがたくさんあります。たとえば、

    001 - awesomesauce
    216 - stillawesomesauce
    
  2. サブディレクトリで構成されています。

bashもしそうなら、このディレクトリ内のスクリプトまたはいくつかの組み込みビューを使用して番号が順番に欠落していることを確認するにはどうすればよいですか?つまり、上記の例では、私が行方不明であると報告することです002128可能であることを知り、ls {000..216}\ -*ファイルを一覧表示して見つからない場合はエラーが発生します。しかし、欠落しているファイルをインポートして再帰的に実行するより良い方法はありますか?

ベストアンサー1

設定でgnu以下を実行できます。

myarr=( $(find . -type f -name '[0-9][0-9][0-9]*' -printf '%f\n' | cut -c1-3 | sort -n) )
join -v1 <(seq -w ${myarr[-1]}) <(printf '%s\n' ${myarr[@]})

またはを使用して、zsh次のように試すことができます。

myarr=( **/[0-9][0-9][0-9]*(.one_'REPLY=${${REPLY:t}:0:3}'_) )
mynums=( {001..$myarr[-1]} )
print -l ${mynums:|myarr}

各ファイル名から数字(最初の3桁)を抽出してソートし、結果を配列に保存しますmyarr。次に、最後のインデックス値(つまり、ファイル名から抽出された最大数)から始まる数値をmynums含む別の配列を設定し、次を使用します。001パラメータ拡張myarr拡張子から値を削除しますmynums

おすすめ記事