こんばんは
次のような名前変更をしたいのですがやりかたがわかりません。
1_1234.jpg
2_1235.jpg
3_12356.jp
これを冒頭の連番を削除したいのです。
Flickrにバックアップとして写真をアップロードしていました。先日ハードディスクがいかれてしまったので、オンラインからまるごとダウンロードしてきました。ツールを使ったのですが、変な連番がついてしまって困っています。
ワイルドカードを使うにしても2カ所になるし、[0-9]*とか、[0-9]{1,3}とか書いてみましたがだめでした。
お願いします。
OS X Mavericks
No.4ベストアンサー
- 回答日時:
Perl のリポジトリを見てみましたが、
確かに rename は含まれていませんでした。
GPL なので、貼っておきます。
http://pastebin.com/qRX5eYFf
/usr/local/bin/rename などに保存して、
chmod +x /usr/local/bin/rename
すれば、使えると思います。
ありがとうございます。
テキストファイルにコピペして、usr/bin/に配置しました。
(usr/local/bin/はありませんでした)
chmod したところ使えるようになり、先の回答者からいただいた正規表現で無事に名前変更できました。
perlはまったく未知の領域なので、この分野に足を踏み入れるのはまだまだ先のことだと思いますが、勉強になりました。
No.3
- 回答日時:
renameというコマンドはLinuxのもののようですね。
Perlには含まれていません。
MacOSXにも含まれていません。
Perl のスクリプトのようなので、どこかで見付けてきたら使えるかもしれませんが。
No.1
- 回答日時:
Unix系OSで使われているコマンドラインシェルには、Windowsで言うところの「ワイルドカード」は使えません。
* 等は、シェルでファイル名に展開されたあと、各コマンドに渡されます。
例えば
mv *.jpg *.png
とすると、シェルで *.jpgに該当するファイル名、*.pngに該当するファイル名に展開され
mv 1.jpg 2.jpg 3.jpg 10.png 11.png
等というコマンドラインになり、mv は上記のコマンドラインで実行されます。
mvは元に「ワイルドカード」があったなどとはまったく知りません。
1回だけなら
\ls -1 *.jpg | sed 's/.*/mv & &/' > move.sh
等として、
mv 1_1234.jpg 1_1234.jpg
mv 2_1235.jpg 2_1235.jpg
...
というテキストファイルmove.sh を作る
→ move.sh を編集して、mvコマンドをやりたいファイル名変更になるようにする
→ sh move.sh で上記mvコマンドをまとめて実行
という方法があります。
sedコマンド(と正規表現)に慣れているなら
\ls -1 *.jpg | sed 'mv 元ファイル 新ファイル になるようなsedスクリプト' | sh
で上記作業をまとめてできます(sedのスクリプトを間違えないように)
ありがとうございます。
Windowsであればその手のスクリプトをさっと書いて置き換えたりしたんでしょうが、あいにくMacのコマンド類になじみがあまりないので今回は言われるがままほかの回答者のくださった正規表現をコピペして乗り切りました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 レジストリの変更が反映されない 5 2023/03/02 22:11
- Mac OS El Capitanがインストールできない… 1 2023/06/16 13:05
- Windows 10 renameコマンドでファイル名からアンダースコアを消す方法 5 2023/04/24 13:33
- iCloud iCloudのデータがMacbookのストレージをいっぱいにしてしまう 2 2022/08/31 22:34
- Visual Basic(VBA) vbaサブフォルダーをワイルドカードで取得したい 2 2022/11/15 08:04
- Mac OS MacBook Air (Late 2020, A2337,M1) で、ファイル検索ができません。 1 2023/07/10 21:30
- Windows 8 動画の再生とタイトルの変更方法を教えてください。 3 2022/08/01 14:51
- ソフトウェア パソコンの買い替え時、マイクロソフトでアカウントの変更(?)は? 2 2022/05/13 02:59
- X(旧Twitter) X(Twitter)で名前を例えば山本太郎→山田花子→山本太郎に変更しようとしたら、プロフィール変更 1 2023/08/20 22:00
- Mac OS Mac iPhoneの連絡帳の大量のリストを削除したい 1 2023/05/12 23:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ終了時にDOS窓を閉じるコ...
-
フォルダ、ファイル操作に最適...
-
バッチファイル 文字列にスペ...
-
AccessVBAで実行時間を指定する...
-
[MATLAB] データ型を指定した変...
-
Windows2000のコマンドプロンプ...
-
VBSでタイマー
-
powershellでlinuxのduコマンド...
-
複数のフォルダを開くバッチフ...
-
バッチコマンドのIF文(条件...
-
ftp受信確認
-
コマンドプロンプトで、特定の...
-
シェルスクリプトでwhileを用い...
-
bashからFTPコマンドのステータ...
-
バッチファイル reg queryした...
-
大量のフォルダからひとつのフ...
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトのエラーに...
-
拡張子を元に戻す
-
virualboxで仮想マシンフォルダ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ終了時にDOS窓を閉じるコ...
-
バッチファイル 文字列にスペ...
-
ショートカットをデスクトップ...
-
make test って何をするための...
-
コマンドプロンプトをクリック...
-
バッチコマンドのIF文(条件...
-
シェルの「:コマンドが見つか...
-
findstrでヒットした1行前の文...
-
ftpコマンドを実行すると「425 ...
-
コマンドプロンプトで、特定の...
-
Pythonで単純にファイルを結合...
-
コマンドプロンプトでファイル...
-
コンピュータ名をファイル名に...
-
バッチファイルを使ってテキス...
-
SSH接続でwindowsサーバのコマ...
-
バッチファイルで実行コマンド...
-
フォルダ、ファイル操作に最適...
-
バッチファイルでdiskpart.exe...
-
AccessVBAで実行時間を指定する...
-
2つ目の「pause」は無効?
おすすめ情報