author - name
いくつかの書籍のファイル名の文字列をname - author
。に変更したい。
ls * | sed -r 's/(.+) - (.+).pdf/mv \2 - \1.pdf/' | sh
たぶんそれは混合かもしれません 記号で区切られた任意の長さの2つの文字列を置き換えます。 そしてsedを使用して複数のファイルの名前を変更する
これはうまくいきません
for file in *; do mv "$file" "$(echo "$file" | sed -r 's/(.+) - (.+).pdf/\2 - \1.pdf/')"
...でもない
rename 's/\([.]+\) - \([.]+\)\.pdf/\2 - \1\.pdf/' *
これは効果があります
rename 's/(.+) - (.+).pdf/\2 - \1.pdf/' *
ベストアンサー1
この試み
% ls -1
001-foobar.pdf
002-foobar.pdf
003-foobar.pdf
パスワード
% rename -n 's/([^-]+)-([^\.]+)\.pdf/$2-$1.pdf/' *.pdf
001-foobar.pdf -> foobar-001.pdf
002-foobar.pdf -> foobar-002.pdf
003-foobar.pdf -> foobar-003.pdf
ノート
(テストが正常な場合は -n スイッチを外してください.)
これを行うこともできないかもしれない同じ名前の他のツールがあるので注意してください。
次のコマンドを実行すると(GNU
)
$ file "$(readlink -f "$(type -p rename)")"
この結果が出ました。
.../rename: Perl script, ASCII text executable
以下は含まれません:
ELF
もしそうなら、これは正しいツールのようです=)
そうでない場合は、それをデフォルト値に設定し(通常はすでに適用されている)、Debian
次のように派生しますUbuntu
。
$ sudo update-alternatives --set rename /path/to/rename
(コマンドのパスに置き換えます/path/to/rename
。perl's rename
このコマンドがない場合は、パッケージマネージャを検索してインストールするか、手動で行う
最後に、このツールはもともとPerlの父親であるLarry Wallによって書かれました。