シェルプログラミング - ファイルを検索(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
この記事が気に入ったらサポートをしてみませんか?