私はbashが成功せずに買収を受け入れるように一日中努力してきました。私が見つけることができる最も近い参照は次のとおりです。
私が実行している場合:
rename -v -n 's/^the.//' *
それは私が必要とするものを正確に実行しますが、「the」を受け取るエイリアスに置き換えたいと思います。ランタイム文字列。これを行う方法はありますか?
どんなアイデアでも大歓迎です!
私は成功せずにこれを試しました。
alias rp="_rp(){ rename 's/"$1"//' *; unset -f _rp; }; _rp"
答え1
エイリアスにはパラメータを使用できません。 (次に項目を追加できますが、これを行うと状況が複雑になります。)マニュアルページには次のようなものがあります。man bash
)それらについて次のように言います。
各単純コマンドの最初の単語(引用符がない場合)を調べて、エイリアスがあるかどうかを確認します。その場合、その単語はエイリアスのテキストに置き換えられます。 [...]
代替テキストにパラメータを使用するメカニズムはありません。パラメータが必要な場合は、シェル関数を使用する必要があります。 [...]
ほとんどすべての目的で、エイリアスはシェル関数に置き換えられます。
したがって、エイリアスの代わりに関数を使用する必要があります。
rp() { rename "s{$1}{}" *; } # No "{}" characters in the substitution
使用法
rp 'the.' # Quotes optional but recommended. Remember . represents any character