私はシェルでいくつかのクイックファイル名クリーンアップ(問題があれば、zsh)をしようとしていました。ファイルの名前を変更します。ファイル名を操作するperl -pe
foreach f (\#*.ogg)
cp $f `echo $f | perl -pe 's/\#\d+ (.+)$/"\1"/'`
end
を(私は念のためにcp
代わりのmv
を使用しています)さて、私はこのようなものを行うためのツールがあります知っているが、個人的な利益のために私はそれをこの方法で行うことができますどのように思ったんだけど。今、エラーが表示されます。
cp: target `When.ogg"' is not a directory
ここで、When.oggはファイル名の最後の部分です。私は引用符を追加しようとしましたが(上記を参照)、スペースをエスケープしていますが、これは私が得るものです。
s perl pmr =; omrtの出力を別のコマンドラインツールの最終引数として使用できない理由はありますか?
ああ、そうだった。 $ fを二重引用符で囲む必要はありませんが、バックティック部分全体を二重引用符で囲みます。私は実際にそこにそれらを置くが、(私のオリジナルの\ 1の周りに)それらを入れている理由は分かりませんが、私はちょうど知ってうれしいです。 – hsiu
ファイル名にスペースがある場合は、$ fを二重引用符で囲む必要があります。また、ファイル名に2つの連続した空白がある場合は、エコーの$ fを二重引用符で囲む必要があります。 – jfg956
@jfgagne:連続スペースに言及してくれてありがとう、それについて考えていない。 –