_
下線文字をすべてというハイフン文字で置き換えようとしています。.mat
は1つのフォルダ内にあります。私は、異なるバージョンを入力し は失敗したの:名前変更コマンドのアンダースコア
rename -f 'w/_/-' *.mat
誰かが間違っているものを私に説明できますか?
_
下線文字をすべてというハイフン文字で置き換えようとしています。.mat
は1つのフォルダ内にあります。私は、異なるバージョンを入力し は失敗したの:名前変更コマンドのアンダースコア
rename -f 'w/_/-' *.mat
誰かが間違っているものを私に説明できますか?
a Perl-based rename
(あなたのタグが示唆するように)を使用している場合、w
はPerlの正規表現の操作ではありません。
rename -f 's/_/-/g' *_*.mat
シェルの名前変更やPerlの名前変更を使用しているかどうかはわかりません。いずれのコンテキストでもコマンドを理解できません。現在のディレクトリ内のすべての*.mat
のファイルの名前を変更する
AのPerlコマンドラインスクリプトは、この
perl -e 'do { (my $f = $_) =~ tr/_/-/; rename $_, $f } for glob "@ARGV"' *.mat
'glob '@ARGV"を '@ ARGV'に置き換えてください。すでにグロブにされているものをグロビングしています。これは、ファイル名に応じて何もしないか、間違った結果を与えるかのどちらかです。具体的には、 'mat'ファイルのいずれかに名前にスペースがあると、パターンは失敗します。 [一定] – ikegami
おかげで、@Daximのように見えます。私はまだCamel Bookの第1版のPerl 'rename'を少し更新したバージョンを使用しています。 –
この作品!!!ありがとう@Leffler。私は最初に 's'で試しましたが、後に 'w'に変更します。しかし、私は最後に – escorciav
@escorciavを使ったことが分かりません:AFAIK、 'w'はPerl置換演算子ではありません。最後の 'g 'は、すべてのアンダースコアがハイフンに置き換えられることを保証します。最初のアンダースコアのみをマップしたい場合、 'g'は必要ありません。スクリプトが 'g'を自動的に適用する可能性があります。 –