2017-11-10 18 views
0

は、いくつかの入力JPEGを取り、同じディレクトリに新しいPNGを吐き出すconvertImage、私はコマンドを持って言う:Linuxのシェルコマンドで出力ファイルの拡張子を置き換え

convertImage --format png photo.jpg -o photo.png 

私はエイリアスを作りたいです」一つだけ引数を取るconvertToPng」、ファイル:

alias convertToPng "convertImage --format png \!:1 -o \!:1.png" 

方法:

convertToPng photo.jpg 

私の現在のソリューションはこれですこれまで出力ファイルの名前を "photo.jpg.png"とし、 "photo.png"という名前にしたいと考えています。最初にファイル名を解析し、それをconvertImage実行可能ファイルに渡す方法はありますか?あなたの入力はJPGが常にある場合

答えて

0

その後、

convertToPng photo 
alias convertToPng "convertImage --format png \!:1.jpg -o \!:1.png" 

または第二パラメータとして拡張を与える

convertToPng photo jpg 
alias convertToPng "convertImage --format png \!:1.\!:2 -o \!:1.png" 

または最後のオプション

convertToPng photo.jpg 
alias convertToPng "convertImage --format png \!:1 -o `echo $1 | cut -f1 -d'.'`.png" 

か、次のようにあなたの.bashrcで関数を書きます

function convert() 
{ 
    convertImage --format png $1 -o `echo $1 | cut -f1 -d'.'`.png; 
} 

、それはaliasesオーバーあなたに多くの柔軟性を与え、あなただけの1の文よりもはるかに多くを行うことができますように私はfunction道を好む

convert photo.jpg 

として functionの上に実行されます。

0
echo photo.jpg | awk -F. '{print $1".png"}' 

これには、次のようなコマンドラインからの呼び出しで使用することができる。

$ convertImage --format png photo.jpg -o `echo photo.jpg | awk -F. '{print $1".png"}'` 
関連する問題