シェルプログラミング - ファイルを検索(findコマンド)

特定のファイルを対象に処理した場合があります。
その場合、findコマンドを使ってます。

環境:macOS MOnterey version 12.6.1

$ bash -version | head -n 1
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin21)

findを使ってファイル見つけてきます。
※デフォルトでサブフォルダまで検索してくれます。オプションで何階層までを検索対象とするか指定できました。

この場合、パスまで含まれていますので…

$ ls -al *.wk
-rw-r--r--  1 user1  staff  0 11 15 00:00 20221115_sample.wk
-rw-r--r--  1 user1  staff  0 11 16 00:00 20221116_sample.wk
-rw-r--r--  1 user1  staff  0 11 17 00:00 20221117_sample.wk
-rw-r--r--  1 user1  staff  0 11 18 00:00 20221118_sample.wk
-rw-r--r--  1 user1  staff  0 11 19 00:00 20221119_sample.wk
mac $ find . -name '*_sample.wk' -type f -newermt '20221115'

./20221116_sample.wk
./20221117_sample.wk
./20221119_sample.wk
./20221118_sample.wk

ファイル名のみ取り出したい場合は、AWKを使います。

$ find . -name '*_sample.wk' -type f -newermt '20221115' | awk -F/ '{print $NF}'
20221116_sample.wk
20221117_sample.wk
20221119_sample.wk
20221118_sample.wk

findコマンドの結果をソートしたい場合は…
ソートオプションはありませんでした。sortコマンドに渡します。

#
$ find . -name '*_sample.wk' -type f -newermt '20221115' | sort

# -r は逆順
$ find . -name '*_sample.wk' -type f -newermt '20221115' | sort -r


この記事が気に入ったらサポートをしてみませんか?