2020年02月29日

gitのためにbashを使ったフォルダ内の一括リネーム

手元のgitリポジトリをgit mv でフォルダ内の一括リネームをしたかったので考えました。

・gitbashを使ってリネームをします。
・カレントディレクトリは目的とするgitリポジトリです。
・”04A_002”→"A04_002"と名前を変更したい場合は以下。
$ ls |grep A_ | sed -e 's/\(..\)A_\(.*\)/\1A_\2\nA\1_\2/' |xargs -n 2 git mv
今回は "ls |grep A_ "で変更対象のファイル名をリストアップ。sedコマンドでリストのファイル名を使い置換。置換後の文字列の間に\nを入れて"リネーム前"と"リネーム後"の二つのファイル名を作ってしまうのがポイントです。リスト項目を順番に処理するxargsコマンドに"リネーム前"と"後"の二つの名前を渡します。xargsで引数を二つごとに取り出すオプションが"-n 2"です。最後にgit mvをかけます

引数を任意の場所に置くときはshコマンドを使い以下のようにします
$ ls |grep A_ | sed -e 's/\(..\)A_\(.*\)/\1A_\2\nA\1_\2/' |xargs -n 2 sh -c 'git mv $0 $1'
■参考
xargsコマンドで覚えておきたい使い方・組み合わせ7個(+1個)
烏野の箱庭ページ烏野の箱庭 …動画・絵・漫画・脚本などの作品紹介
烏野のyoutubeページ烏野博史動画 …広告・実験・講習用映像のyoutubeチャンネル
烏野のyoutubeページうのひろし日々描描 …作画配信のyoutubeチャンネル
UNOUNOのPixiv …絵、デザイン資料、漫画、実験画像
karasuno10をフォローしましょうkarsauno10のTwitter …考え、宣伝
posted by karasuno10 at 22:55 | Comment(0) | PC技術 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は90日以上新しい記事の投稿がないブログに表示されております。