多くのファイルを含む.PDF
ディレクトリがあります.JPG
。
.JPG
.PDF
各ファイルには同じ名前のファイルが必要です。ファイルがないファイルを
見つけるためにコマンドを使用しようとしています。.PDF
.JPG
私の現在のコマンドは次のとおりです。
find -iname '*.jpg' -print0|sed 's/jpg$/pdf$/ig' |xargs -0 ls
これにより、: No such file or directory
ファイルが存在しないというエラーが出力されます。
問題があるかls
処理できないというエラーが表示されます。次のいずれかが私の問題を解決します。 grep
sed
ls
存在しないファイルのみをリストする方法は?- /filter
ls
/sed
エラーを処理する方法はgrep
? - bashスクリプトファイルを生成せずにファイルの存在を確認する別の方法はありますか?
ベストアンサー1
ループを使うべきだと思います
IFR=$'\0' # because you use -print0 on your find
for jpg_file in `find -iname '*.jpg' -print0`
do
pdf_file=`echo "$jpg_file" | sed 's/jpg$/pdf/i'`
if [ -e "$pdf_file" ]; then
echo "$pdf_file exist"
else
echo "$pdf_file missing"
fi
done