• 締切済み

【シェルスクリプト】各ディレクトリで一番大きな数字

シェルスクリプト(Ubuntu bash)にて 以下の様なディレクトリ構成で各ディレクトリで一番数字の大きなファイルのパスを取得したいです。 data --0001 ----1 ----2 ----3 --0002 ----1 ----2 --0003 ----1 結果としてはこのように表示したいのですが、良い方法はありませんでしょうか。 data/0001/3 data/0002/2 data/0003/1

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

最下層には数字のファイル名しかないという前提で、 for f in data/* do if test -d "$f" then echo "$f"/`/bin/ls -rv "$f" | head -1` fi done 上記をコマンドラインで直接キーインするなら、lsコマンドはaliasされていることがあり得るので、/bin/ls か \ls と書く。 シェルスクリプトファイルに書くなら、普通はaliasは効かないので ls だけでもいい。

  • trapezium
  • ベストアンサー率62% (276/442)
回答No.1

数字でいいんだったら for i in data/*; do ls -r $i/* | head -1; done 本当は数値だったりディレクトリやファイル数がべらぼうに多いと破綻するけど。

関連するQ&A