唯物是真 @Scaled_Wurm

プログラミング(主にPython2.7)とか機械学習とか

シェルスクリプト(bash)でファイル名の末尾が偶数や奇数のファイルだけ処理したい

1.txt, 2.txt, 3.txt, ...のように連番のファイルがあった時に、ファイル名が特定の条件(たとえば偶数)になっているものだけを処理したいということがあって簡単に調べたのでメモ

偶数奇数の場合には数値の最後の文字だけを見れば偶数か奇数かは判定できる

どうやれば簡単なのかよくわからなかったが適当に検索で調べてこんな感じにした
もっと簡単にできる方法があったらコメントなどで教えていただけると嬉しいです

find版

findコマンドでファイル名に末尾の文字を指定して引っかかったのだけを処理する

find . -name '*[13579].txt' -exec echo {} \;

for版

forinの後に./*[02468].txtみたいに指定したらマッチするファイルがなにもないときに展開されずに残念な感じになったのでifでフィルタする感じにしてみた

for file in ./*.txt; do
  if [[ $file == *[02468].txt ]]; then
    echo $file
  fi
done
for file in ./*[02468].txt; do
  if [ -f $file ]; then
    echo $file
  fi
done