ワイルドカード/正規表現を使用して存在しないファイルを選択する

ワイルドカード/正規表現を使用して存在しないファイルを選択する

*.jpg何百ものファイルを*.webp次のファイルに変換しようとしています。libwebpmacOSで。特にコマンドラインツールを使いたいです。cwebp変換を実行します。仕組みは次のとおりです。

cwebp <input_file>.jpg -o <output_file>.webp

about.という名前のファイルは、*.jpgというIMG_20160227_110640.jpgディレクトリに保存されていますroot。問題は、*.webp変換を実行するときにファイルが存在しないため、ファイル名をcwebp

cwebp IMG_20160227_110640.jpg -o IMG_20160227_110640.webp

しかし、何百行ものコマンドがあり、何百行ものコマンドを入力したくありません。正規表現/スクリプトを使用して変換を自動化するにはどうすればよいですか?

ベストアンサー1

forパラメータ拡張と組み合わせたループを使用してください。

for f in *.jpg; do cwebp "$f" -o "${f%.jpg}.webp"; done

LESS='+/Parameter Expansion' man bashBashの詳細も参照してください。

しかし、パラメータ拡張はPOSIXで指定されます。;Bashに限定されていません。 (Bashにはいくつかの拡張機能があります。)上記のコマンドは、すべてのPOSIXシステムで機能します。

おすすめ記事