2016-12-09 4 views
0

私は100万のバリエーションを試しましたが、基本的には複雑なファイル名置換の結果を保存したいと考えています。Perlの//出力をBashに保存しようとしています

newName=$(perl -e 's/(\d)to\d000(\d)/(5-$1)*10000+(7-$2)/e' <<< "$img") 

残念ながら、これはまったく何も保存しません。しかし、私がPerlに印刷するように設定した場合、次のようになります。

perl -pe 's/(\d)to\d000(\d)/(5-$1)*10000+(7-$2)/e' <<< "$img" 

正しい結果が得られます。返された値をbashの変数に格納する手助けをすることができますか?

+0

いただきました '$のimg'に?そしてなぜあなたは '-p'を最初のものから外したのですか? – 123

+0

"turn0to10001.png"のようなファイル名 – bobbylox

+1

出力をbash変数に入れるときに出力をperlで印刷しようとしましたか?すべてのbashはstdoutをキャプチャしています... – wally

答えて

4

は割り当てがちょうどperlコマンドの(stdoutに)出力をキャプチャしますので、あなたは、置換を行った後perl印刷変更された文字列を持っている必要があります:

$ newName=$(perl -pe 's/(\d)to\d000(\d)/(5-$1)*10000+(7-$2)/e' <<< "turn0to10001.png") 
$ echo $newName 
turn50006.png 
関連する問題