フォルダ内のファイル名を一括変更するシェル/Bashショートカット
2023-10-09 09:09:41
質問
正規表現または他の基準に基づいてフォルダー内のすべてのファイルの名前を変更できるシェル/Bash のショートカットはありますか。私がここで探しているのは、たとえば、次のような命名規則で 100 個のテキスト ファイルがあるフォルダーのドキュメントです。
<longdocumentidentifier>-doc-<counter>.txt.
私はちょうど上記の与えられた慣例ですべてのファイルの名前を変更する必要があります。
doc-<counter>.txt
上記のようなワンライナーはないでしょうか?
どのように解決するのですか?
このような方法をお勧めします。
for i in *-doc-*.txt; do mv "$i" "${i/*-doc-/doc-}"; done
${i/*-doc-/doc-}
は、最初に現れる
*-doc-
を
doc-
.
複数の置換を行う必要がある場合(コメント番号1参照)には、その置換のために
${var//Pattern/Replacement}
というバリアントを使う必要があります。もし名前の先頭を置き換える必要があるなら、次のようにする必要があります。
${var/#Pattern/Replacement}
を使う必要があり、もし末尾 (つまり拡張子) を置き換える必要がある場合は
${var/%Pattern/Replacement}
という形式を使う必要があります。
参照 シェルパラメータ展開 を参照してください。この拡張はbashに特有のものです。
関連
-
Linux MintのデスクトップでNoteをイタリックにすることは可能ですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] フォルダとそのサブフォルダ/ファイルのパーミッションを一括で変更する方法
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
-
[解決済み] Linux で grep を使ってファイル名だけを表示するにはどうしたらいいですか?
-
[解決済み] bashシェルスクリプトの全引数を伝搬させる
-
[解決済み] 特定のファイル/フォルダを除外してディレクトリをtarするシェルコマンド
-
[解決済み] 大量のファイルの拡張子を変更するにはどうすればよいですか?
-
[解決済み] Bashで複数のテキストファイルを1つのファイルに結合する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
LinuxでSteamをダウンロードしインストールする方法
-
Kali Linuxのマウスライトテーマを変更する方法は?マウスカーソルのテーマを変更するためのヒント
-
deepin linuxでroot権限に切り替えるには?Deepinでrootに切り替えるためのヒント
-
Linux 5.10.10 正式版リリース:NULLポインタの不具合修正など。
-
TclError: 表示名がなく、$DISPLAY環境変数もない。
-
Centos7 dns service named installation, encountered ** server can't find xxx.com: NXDOMAIN問題
-
[解決済み] ビーコン待ちでハングアップしたリーバー
-
[解決済み] すべてのディレクトリとサブディレクトリを再帰的にgrepするにはどうしたらいいですか?
-
[解決済み] Unix/Linuxで、ファイルのあるフォルダを別のフォルダにコピーするにはどうしたらいいですか?[クローズド]
-
[解決済み] bashスクリプトでset -eはどういう意味ですか?