LaunchControlを使っていくつかのホットフォルダを作成しようとしています。スクリプトの一部で、特定のディレクトリにあるファイルの名前を変更したい場合は、私が持っている問題は、名前を変更する部分にありません、それはディレクトリを呼び出すスクリプトを取得しています。私がオンラインで見つけたすべてのスクリプトや記事は、名前を変更するスクリプトの一部としてディレクトリパスを正しく呼び出すのではなく、ファイルの名前を変更するのに役立ちます。それは難しいとは思われませんが、私はそれを解決することはできません。特定のディレクトリのファイルをbash/regexで名前を変更する
これまで私が試したことは何もありません。もし私がディレクトリにCDを置いて、ディレクトリを呼んでいる部分を除外すると、ファイルの名前が変更されます。その後、
#!/bin/bash
target_directory=/Volumes/COMMON-LIC-PHOTO/ASPERA/ASPERA_STAGING
cd "$target_directory" || {
echo "Error cd'ing to $target_directory" >&2
exit 1
}
...とあなたfind
コマンドの-iregex
一部をオフのままに:
find . -mindepth 3 -type f -iregex '.*/Volumes/COMMON-LIC-PHOTO/ASPERA/ASPERA_STAGING/.*' -print0 |
xargs -0 rename -v 's/([0-9]*)_LK/$1_standard/' \;
「ディレクトリを呼び出す」という意味を理解できません。名前を変更して何を助けてくれるかの例。 – janos
申し訳ありませんが、 "ディレクトリを呼び出す"とは、スクリプト自体がルートレベルで実行されているため、ファイルの名前を変更するためにどのフォルダを探しているかを知るためにディレクトリパスを指定する必要があります。 "LK"という言葉を "標準"と "ALT"を "alternate"に置き換える必要があります。例えば、123454_LK.tifは123454_standard.tif、123454_ALT1.tifは123454_alternate1.tifになります。 –