質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

Q&A

解決済

2回答

432閲覧

ファイル名を一括で三桁整数ゼロ埋めにするシェルスクリプトを教えてほしい。

Yoshikatsu

総合スコア9

シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

0グッド

0クリップ

投稿2023/01/20 05:18

前提

ファイル名をtest_1_01.pngにしてしまったため、test_12_01.png test_100_01.pngというファイル名が出てきた時にlsコマンドで綺麗に順番通りに並ばない。

質問

ファイル名をtest_1_01.pngという形式からtest_001_01.pngというように真ん中の数だけ一括で三桁整数ゼロ埋めにするシェルスクリプトを教えてほしいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

GNU sed を使う場合。

bash

1bash$ touch test_{1..100}_01.png 2bash$ ls -1 3test_100_01.png 4test_10_01.png 5test_11_01.png 6test_12_01.png 7test_13_01.png 8 : 9 10test_96_01.png 11test_97_01.png 12test_98_01.png 13test_99_01.png 14test_9_01.png 15 16bash$ sed --version 17sed (GNU sed) 4.8 18 19bash$ ls -1 | sed -E 's/(.*_)([0-9]+)(_.*)/printf "mv -n %s %s%03d%s" \0 \1 \2 \3/e' | sh 20bash$ ls -1 21test_001_01.png 22test_002_01.png 23test_003_01.png 24test_004_01.png 25test_005_01.png 26 : 27 28test_096_01.png 29test_097_01.png 30test_098_01.png 31test_099_01.png 32test_100_01.png

投稿2023/01/20 05:45

melian

総合スコア19701

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

$ for f in *.png; do x=$(echo $f | sed -e 's/_\([0-9]\)_/_00\1_/' -e 's/_\([0-9][0-9]\)_/_0\1_/'); echo mv $f $x; done

投稿2023/01/20 05:33

編集2023/01/20 05:40
shiketa

総合スコア3971

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yoshikatsu

2023/01/20 05:41

ありがとうございます。完璧でした。sedと正規表現でやるやり方ですね、正規表現が苦手でしたので、これから勉強しようと思います。
Yoshikatsu

2023/01/20 06:01

ちなみに対象ファイルをワイルドカードで指定する方法はどうしたら良いでしょうか? 例えば test.sh *.png から *.txtでも指定できるような.
Yoshikatsu

2023/01/20 06:14

ありがとうございます。シェルスクリプト勉強します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問