画像のファイル名をテキストファイルに移動

画像のファイル名をテキストファイルに移動

img1.jpg各画像の名前が等しいフォルダに画像があり、img2.jpg画像の位置は等の形式です/home/master/test/data/obj/img1.jpg/home/master/test/data/obj/img2.jpg画像パスを抽出して、sample.txt各行が画像の場所に対応するテキストファイルに配置しようとします。

/home/master/test/data/obj/img1.jpg
/home/master/test/data/obj/img2.jpg

Linuxでこれを簡単にする方法はありますか?

答え1

一つの可能​​性はfind

find /home/master/test/data/obj/ -type f -name "*.jpg" > sample.txt

*.jpgに含まれるファイルの絶対パス名を返します/home/master/test/data/obj/

コマンドfindとそのオプションはPOSIX仕様に-typeあります。-name

答え2

次のコマンドを使用できます。

cd your_dir
find "$(pwd)" -type f -name "img[0-9]*\.jpg" -exec echo > sample.txt {} \;

出力:

答え3

フルパスを取得したい場合は、次のものを使用できます。

ls -1 /home/master/test/data/obj/*.jpg >sample.txt

そのディレクトリにすでに存在する場合は、次のものを使用できます。

ls -1 $(pwd)/*.jpg >sample.txt

関連情報