0

コマンドの出力をスクリプトの変数に設定しようとしています。私は一日中検索しましたが、コマンド権を持っているようです。ただし、スクリプトを実行するたびに、コマンドを変数に割り当てて実行するのではなく、コマンドを実行するだけです。

スクリプトの関連部分は次のとおりです。

ffname=$(rename 's/_1080p_12000//' *.*)
echo $ffname

コマンドを実行せずに、スクリプトの別の部分でffnameを変数として使用する必要がありますが、機能したくないようです。誰か提案がありますか?

4

2 に答える 2

1

-n(no-act) オプションを追加しrenameて、出力を取得できます。

ffnames=($(rename -n 's/_1080p_12000//' *.* | awk '{print $1,$NF}'))

結果には複数の項目が含まれています。したがって、それらを保持するための配列が必要です。

次に、オプションなしで実際の名前変更を行い-nます。

于 2012-06-18T22:26:04.153 に答える
0

Bash を使用している場合は、取り込まれた変数に対してシェル パラメーター展開置換演算子を使用して、削除するファイル名の部分を置き換えることができます。例えば:

$ ffname=foo_1080p_12000.bar
$ echo "${ffname/_1080p_12000}"
foo.bar

ただし、実際の mv または rename コマンドを実行するか、必要に応じて変更された値をffnameに再割り当てするかは、ユーザー次第です。

于 2012-06-24T15:46:31.607 に答える